1- name : Website Deployment
2- on :
3- push :
4- branches :
5- - main
1+ name : matrix-workflow
2+ on : push
63jobs :
7- lint :
8- runs-on : ubuntu-latest
9- steps :
10- - name : Get code
11- uses : actions/checkout@v3
12- - name : Cache dependencies
13- id : cache
14- uses : actions/cache@v3
15- with :
16- path : ~/.npm
17- key : deps-node-modules-${{ hashFiles('**/package-lock.json') }}
18- - name : Install dependencies
19- run : npm ci
20- - name : Lint code
21- run : npm run lint
22- test :
23- runs-on : ubuntu-latest
24- steps :
25- - name : Get code
26- uses : actions/checkout@v3
27- - name : Cache dependencies
28- id : cache
29- uses : actions/cache@v3
30- with :
31- path : ~/.npm
32- key : deps-node-modules-${{ hashFiles('**/package-lock.json') }}
33- - name : Install dependencies
34- run : npm ci
35- - name : Test code
36- run : npm run test
37- - name : Upload test report
38- uses : actions/upload-artifact@v3
39- with :
40- name : test-report
41- path : test.json
424 build :
43- needs : test
44- runs-on : ubuntu-latest
45- steps :
46- - name : Get code
47- uses : actions/checkout@v3
48- - name : Cache dependencies
49- id : cache
50- uses : actions/cache@v3
51- with :
52- path : ~/.npm
53- key : deps-node-modules-${{ hashFiles('**/package-lock.json') }}
54- - name : Install dependencies
55- run : npm ci
56- - name : Build website
57- id : build-website
58- run : npm run build
59- - name : Upload artifacts
60- uses : actions/upload-artifact@v3
61- with :
62- name : dist-files
63- path : dist
64- deploy :
65- needs : build
66- runs-on : ubuntu-latest
5+ strategy :
6+ matrix :
7+ node-version : [12,13,14]
8+ os : [ubuntu-latest,windows-latest]
9+ runs-on : ${{ matrix.node-version }}
6710 steps :
68- - name : Get build artifacts
69- uses : actions/download-artifact@v3
11+ - name : checkout
12+ uses : actions/checkout@v4
13+ - name : install nodejs
14+ uses : actions/setup-node@v3
7015 with :
71- name : dist-files
72- - name : Output contents
73- run : ls
74- - name : Deploy
75- run : echo "Deploying..."
16+ node-version : ${{ matrix.os }}
17+ - name : install dependencies
18+ run : |
19+ node ci
20+ - name : build node
21+ run : |
22+ node run build
0 commit comments