-
Notifications
You must be signed in to change notification settings - Fork 6
152 lines (125 loc) · 3.41 KB
/
pr-check.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
150
151
152
name: PR check
on:
pull_request:
branches:
- master
jobs:
install-dependencies:
name: Install Dependencies
runs-on: ubuntu-latest
outputs:
cache-key: ${{ steps.cache-deps.outputs.cache-key }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Enable corepack
run: corepack enable
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Install dependencies
run: yarn install --immutable
- name: Upload node_modules as artifact
uses: actions/upload-artifact@v4
with:
name: node_modules
path: node_modules
compression-level: 7
include-hidden-files: true
if-no-files-found: error
- name: Upload .yarn as artifact
uses: actions/upload-artifact@v4
with:
name: .yarn-cache
path: .yarn/cache
compression-level: 7
include-hidden-files: true
if-no-files-found: error
run-lint:
name: Lint
runs-on: ubuntu-latest
needs: install-dependencies
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Enable corepack
run: corepack enable
- name: Download node_modules artifact
uses: actions/download-artifact@v4
with:
name: node_modules
path: node_modules
- name: Download .yarn artifact
uses: actions/download-artifact@v4
with:
name: .yarn-cache
path: .yarn
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Run lint
run: yarn lint
run-tests:
name: Test
runs-on: ubuntu-latest
needs: install-dependencies
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Enable corepack
run: corepack enable
- name: Download node_modules artifact
uses: actions/download-artifact@v4
with:
name: node_modules
path: node_modules
- name: Download .yarn artifact
uses: actions/download-artifact@v4
with:
name: .yarn-cache
path: .yarn
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Run tests
run: yarn test
- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Test Results
path: reports/test-results.xml
reporter: jest-junit
- name: Test Summary
uses: test-summary/action@v2
if: always()
with:
paths: 'reports/test-results.xml'
run-typecheck:
name: Type Check
runs-on: ubuntu-latest
needs: install-dependencies
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Enable corepack
run: corepack enable
- name: Download node_modules artifact
uses: actions/download-artifact@v4
with:
name: node_modules
path: node_modules
- name: Download .yarn artifact
uses: actions/download-artifact@v4
with:
name: .yarn-cache
path: .yarn
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Run type check
run: yarn typecheck