-
-
Notifications
You must be signed in to change notification settings - Fork 50
148 lines (146 loc) · 5.42 KB
/
ionic.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: Ionic
concurrency:
# Group PRs by head_ref, push to main branch by commit id, and others branch by ref.
group: ${{ github.workflow }}-${{ github.head_ref || (github.ref == 'refs/heads/main' && github.sha) || github.ref }}
cancel-in-progress: true
on:
push:
branches:
- main
pull_request:
branches:
- '*'
env:
JHIPSTER_INSTALL: ${{ github.workspace }}/generator-jhipster-ionic/test-integration/install
JHIPSTER_SAMPLES: ${{ github.workspace }}/generator-jhipster-ionic/test-integration/jdl
#environment properties
TZ: America/Denver
SPRING_OUTPUT_ANSI_ENABLED: ALWAYS
SPRING_JPA_SHOW_SQL: false
NG_CLI_ANALYTICS: false
# https://github.com/cypress-io/cypress/issues/27962#issuecomment-1746294247
NODE_OPTIONS: --dns-result-order=ipv4first
jobs:
samples:
name: ${{ matrix.jdl }}
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.pull_request.title, '[skip ci]') && !contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.ref_type, '[tag]')"
timeout-minutes: 40
defaults:
run:
working-directory: ${{ github.workspace }}/backend
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
jdl:
- monolith-jwt.jdl
- monolith-oauth2.jdl
- gateway-oauth2.jdl
- reactive-oauth2.jdl
- 21-points.jdl
- flickr2.jdl
include:
- jdl: monolith-jwt.jdl
e2e: 1
- jdl: monolith-oauth2.jdl
e2e: 1
- jdl: gateway-oauth2.jdl
e2e: 1
- jdl: reactive-oauth2.jdl
e2e: 1
- jdl: 21-points.jdl
e2e: 1
- jdl: flickr2.jdl
e2e: 1
steps:
- uses: jhipster/actions/create-app-path@v0
with:
path: ${{ github.workspace }}/backend
- uses: jhipster/actions/setup-runner@v0
with:
node-version: 20
java-version: 17
maven-cache: true
gradle-cache: true
binary-dir: ${{ github.workspace }}/generator-jhipster-ionic/cli/
- uses: actions/checkout@v4
with:
path: generator-jhipster-ionic
fetch-depth: 2
- name: 'Install blueprint'
run: npm install
working-directory: ${{ github.workspace }}/generator-jhipster-ionic
- name: Check Version
run: $JHIPSTER_INSTALL/02-checkVersion.sh
- run: cli.cjs generate-sample ${{ matrix.jdl }} --skip-jhipster-dependencies
- uses: jhipster/actions/compare-sample@v0
id: compare-backend
if: >-
github.event.pull_request &&
contains(github.event.pull_request.labels.*.name, 'pr: compare-backend')
with:
application-base-path: ${{ github.workspace }}/backend-base
application-folder: backend
compare-folder: backend
generator-path: generator-jhipster-ionic
cmd: cli.cjs generate-sample ${{ matrix.jdl }} --skip-git --skip-jhipster-dependencies --skip-install
- uses: jhipster/actions/compare-sample@v0
id: compare
if: >-
github.event.pull_request &&
!contains(github.event.pull_request.labels.*.name, 'pr: disable-compare') &&
steps.compare-backend.outputs.has-changes != 'true'
with:
application-folder: backend
compare-folder: ionic4j
generator-path: generator-jhipster-ionic
cmd: cli.cjs generate-sample ${{ matrix.jdl }} --skip-git --skip-jhipster-dependencies --skip-install
- name: Ionic tests
run: cat package.json; npm install; npm test
working-directory: ${{ github.workspace }}/ionic4j
- name: Build application docker image
if: steps.compare.outputs.equals != 'true'
run: npm run java:docker:prod
- name: Launch backend application
run: npm run app:up
if: steps.compare.outputs.equals != 'true'
- name: Wait for backend to start
run: npm run ci:server:await
if: steps.compare.outputs.equals != 'true'
- name: Launch ionic e2e test
id: e2e
if: matrix.e2e == 1 && steps.compare.outputs.equals != 'true'
uses: cypress-io/github-action@v6
with:
browser: chrome
command: npm run e2e:ci
working-directory: ${{ github.workspace }}/ionic4j
- name: 'E2E: Store failure screenshots'
uses: actions/upload-artifact@v4
if: always() && steps.e2e.outcome == 'failure'
with:
name: screenshots-${{ matrix.jdl }}
path: ${{ github.workspace }}/ionic4j/cypress/screenshots
- name: 'E2E: Store failure videos'
uses: actions/upload-artifact@v4
if: always() && steps.e2e.outcome == 'failure'
with:
name: videos-${{ matrix.jdl }}
path: ${{ github.workspace }}/ionic4j/cypress/videos
- name: Dump docker logs on failure
if: failure()
uses: jwalton/gh-docker-logs@v2
check-samples:
permissions:
contents: none
runs-on: ubuntu-latest
needs: [samples]
if: always()
steps:
- run: |
echo '${{ toJSON(needs) }}'
if [ 'skipped' == '${{ needs.samples.result }}' ] || [ 'success' == '${{ needs.samples.result }}' ] || [ 'closed' == '${{ github.event.action }}' ]; then
exit 0
fi
exit 1