11name : CI
2+ env :
3+ NV : 12.x # node version
24
35on :
46 push :
57 release :
68 types : [published]
79
810jobs :
9- build-test :
10- name : Build and Test
11+
12+ find-ignored-tests :
13+ name : Find ignored tests
14+ runs-on : ubuntu-latest
15+ steps :
16+ - name : Checkout source
17+ uses : actions/checkout@v2
18+ - name : Run the script
19+ run : ./find-ignored-tests.sh
20+
21+ unit-tests :
22+ name : Run unit tests
23+ needs : [find-ignored-tests]
1124 runs-on : ubuntu-latest
12- strategy :
13- matrix :
14- node-version : [12.x]
1525 steps :
16- - uses : actions/checkout@v2
17- - name : Use Node.js ${{ matrix.node-version }}
26+ - name : Checkout source
27+ uses : actions/checkout@v2
28+ - name : Set up Node.js ${{ env.NV }}
1829 uses : actions/setup-node@v1
1930 with :
20- node-version : ${{ matrix.node-version }}
31+ node-version : ${{ env.NV }}
2132 - name : Install dependencies
2233 run : npm install
23- - name : Build app in prod mode
24- run : npm run build-prod
25- - name : Find ignored tests
26- run : ./find-ignored-tests.sh
27- - name : Run unit tests
34+ - name : Run the tests
2835 run : npm run test-ci
2936 env :
3037 TZ : Europe/Zurich
31- - name : Run e2e tests
32- run : |
33- npm run webdriver-update
34- npm run test-e2e-protractor
35- - name : Run lint
38+
39+ e2e-tests :
40+ name : Run e2e tests
41+ needs : [find-ignored-tests]
42+ runs-on : ubuntu-latest
43+ steps :
44+ - name : Checkout source
45+ uses : actions/checkout@v2
46+ - name : Set up Node.js ${{ env.NV }}
47+ uses : actions/setup-node@v1
48+ with :
49+ node-version : ${{ env.NV }}
50+ - name : Install dependencies
51+ run : npm install
52+ - name : Webdriver update
53+ run : npm run webdriver-update
54+ - name : Run the tests
55+ run : npm run test-e2e-protractor
56+
57+ lint :
58+ name : Run lint
59+ runs-on : ubuntu-latest
60+ steps :
61+ - name : Checkout source
62+ uses : actions/checkout@v2
63+ - name : Set up Node.js ${{ env.NV }}
64+ uses : actions/setup-node@v1
65+ with :
66+ node-version : ${{ env.NV }}
67+ - name : Install dependencies
68+ run : npm install
69+ - name : Run the script
3670 run : npm run lint-ci
3771
72+ build :
73+ name : Build the app
74+ runs-on : ubuntu-latest
75+ steps :
76+ - name : Checkout source
77+ uses : actions/checkout@v2
78+ - name : Set up Node.js ${{ env.NV }}
79+ uses : actions/setup-node@v1
80+ with :
81+ node-version : ${{ env.NV }}
82+ - name : Install dependencies
83+ run : npm install
84+ - name : Build in prod mode
85+ run : npm run build-prod
86+
3887 release-please :
3988 name : Prepare next release
4089 runs-on : ubuntu-latest
4190 # Automate releases with Conventional Commit Messages as Pull Requests are merged into "main" branch
4291 if : github.ref == 'refs/heads/main'
4392 steps :
44- - uses : GoogleCloudPlatform/release-please-action@v2
93+ - name : Get release please action
94+ uses : GoogleCloudPlatform/release-please-action@v2
4595 with :
4696 token : ${{ secrets.GH_TOKEN }}
4797 release-type : node
@@ -51,7 +101,12 @@ jobs:
51101 # publish only on release
52102 publish :
53103 name : Publish to Dockerhub
54- needs : build-test
104+ needs : [
105+ build,
106+ lint,
107+ e2e-tests,
108+ unit-tests
109+ ]
55110 runs-on : ubuntu-latest
56111 if : github.event_name == 'release' && startsWith(github.ref, 'refs/tags')
57112 steps :
80135 name : Docs Build Test
81136 runs-on : ubuntu-latest
82137 steps :
83- - uses : actions/checkout@v2
138+ - name : Checkout source
139+ uses : actions/checkout@v2
84140 with :
85141 fetch-depth : 1
86142 - name : Set up Python 3.8
97153 docker system df
98154 docker system prune --all --force --volumes
99155 df -h
100- - name : run docs build
156+ - name : Run docs build
101157 run : make docs-build
102158 - name : Disk Free After
103159 run : |
@@ -107,13 +163,11 @@ jobs:
107163 # deploy documentation only on release
108164 deploy-docs :
109165 name : Deploy docs (on release only)
110- needs : [
111- docs-build-test
112- ]
166+ needs : [docs-build-test]
113167 runs-on : ubuntu-latest
114168 if : github.event_name == 'release' && startsWith(github.ref, 'refs/tags')
115169 steps :
116- - name : Checkout main
170+ - name : Checkout source
117171 uses : actions/checkout@v2
118172 - name : Deploy docs
119173 uses : mhausenblas/mkdocs-deploy-gh-pages@1.16
0 commit comments