11name : CI
22
33on : [ push, pull_request ]
4+
45env :
5- LATEST_NODE : ' 14 '
6+ DEFAULT_NODE : ' 16 '
67
78jobs :
89 lockfile-lint :
910 name : Lockfile lint
10- runs-on : ubuntu-latest
11+ runs-on : ' ubuntu-latest'
1112 steps :
1213 - uses : actions/checkout@v2
1314 - uses : actions/setup-node@v2
1415 with :
15- node-version : ${{ env.LATEST_NODE }}
16+ node-version : ${{ env.DEFAULT_NODE }}
1617 - name : lint lock file
17- run : npx lockfile-lint --path package-lock.json --allowed-hosts npm --validate-https
18-
18+ run : npx lockfile-lint --path package-lock.json --allowed-hosts npm --validate-http
19+
1920 test :
2021 strategy :
2122 matrix :
2223 platform : [ ubuntu-latest ]
23- node : [ '10', '12', '14' ]
24+ node : [ '10', '12', '14', '16' ]
2425 name : Unit Tests Node ${{ matrix.node }} (${{ matrix.platform }})
2526 needs : lockfile-lint
2627 runs-on : ${{ matrix.platform }}
@@ -31,42 +32,44 @@ jobs:
3132 node-version : ${{ matrix.node }}
3233 - name : install dependencies
3334 run : npm ci
34- - name : lint
35- run : npm run lint
36- - name : units tests
35+ - name : unit tests
3736 run : npm run test:coverage
38- - name : Coveralls
37+ - name : upload code coverage artifacts
38+ if : ${{ matrix.node == env.DEFAULT_NODE }}
39+ uses : actions/upload-artifact@v2
40+ with :
41+ name : coverage
42+ path : coverage
43+
44+ coverage :
45+ needs : [test, lockfile-lint]
46+ runs-on : ' ubuntu-latest'
47+ steps :
48+ - uses : actions/checkout@v2
49+ - uses : actions/setup-node@v2
50+ with :
51+ node-version : ${{ env.DEFAULT_NODE }}
52+ - name : install dependencies
53+ run : npm ci
54+ - name : download code coverage artifacts
55+ uses : actions/download-artifact@v2
56+ with :
57+ name : coverage
58+ path : coverage
59+ - name : publish coverage to coveralls
3960 uses : coverallsapp/github-action@master
40- if : matrix.node == ${{ env.LATEST_NODE }}
4161 with :
4262 github-token : ${{ secrets.GITHUB_TOKEN }}
4363
44-
45- release :
46- name : release
47- permissions :
48- actions : write
49- checks : write
50- contents : write
51- deployments : write
52- issues : write
53- packages : write
54- pull-requests : write
55- repository-projects : write
56- security-events : write
57- statuses : write
58- needs : [ test, lockfile-lint ]
59- runs-on : ubuntu-latest
60- if : github.event_name == 'push' && github.ref == 'refs/heads/master'
64+ lint :
65+ needs : lockfile-lint
66+ runs-on : ' ubuntu-latest'
6167 steps :
6268 - uses : actions/checkout@v2
6369 - uses : actions/setup-node@v2
6470 with :
65- node-version : ' 14 '
71+ node-version : ${{ env.DEFAULT_NODE }}
6672 - name : install dependencies
67- run : npm ci --ignore-scripts
68- - name : release
69- run : npx semantic-release
70- env :
71- GITHUB_TOKEN : ${{secrets.GITHUB_TOKEN}}
72- NPM_TOKEN : ${{secrets.NPM_TOKEN}}
73+ run : npm ci
74+ - name : lint
75+ run : npm run lint
0 commit comments