generated from DTS-STN/next-template
-
Notifications
You must be signed in to change notification settings - Fork 3
149 lines (121 loc) · 3.11 KB
/
default-tests.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
149
name: Default Testing
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
lint:
name: Lint Check
runs-on: ubuntu-latest
steps:
- name: Checkout 🔔
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install
run: npm install
env:
CI: true
- name: Linting
run: npm run lint
- name: TypeScript Validation
run: npm run tsc:validate
unit:
name: Jest Unit Test
runs-on: ubuntu-latest
steps:
- name: Checkout 🔔
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install
run: npm install
env:
CI: true
- name: Unit Tests 🧪
run: npm run test:coverage -- -u
env:
CI: true
- name: Store Results
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: coverage
e2e:
name: Cypress E2E Test
runs-on: ubuntu-latest
steps:
- name: Checkout 🔔
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install
run: npm install
env:
CI: true
- name: Build
run: npm run build
env:
CI: true
- name: Cypress end-to-end 🧪
uses: cypress-io/github-action@v6
env:
CI: true
NODE_ENV: production
with:
install: false
start: npm run start
- name: Merge test results into one
run: npm run report:merge
- name: Generate HTML report
run: npm run report:generate
- name: Store Results
uses: actions/upload-artifact@v4
with:
name: e2e-test-report
path: report
codeql:
name: Code QL Analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: 'javascript'
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
deploy_test_results:
name: Get and Deploy Artifacts
if: ${{ github.actor != 'dependabot[bot]' }}
needs: [unit, e2e]
runs-on: ubuntu-latest
#dependabot doesn't get write access
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: test_results
env:
CI: true
- name: Deploy Report 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
target-folder: ${{ github.ref }}
folder: test_results