-
Notifications
You must be signed in to change notification settings - Fork 1.6k
129 lines (122 loc) · 3.57 KB
/
ci.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
name: CI
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
cache: 'yarn'
- name: Install dependencies and build
run: yarn --frozen-lockfile
- name: Zip artifacts
run: zip -r build-artifacts ${{ github.workspace }}
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: build-artifacts.zip
lint:
needs: build2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build-artifacts
- name: Unzip artifacts
run: unzip -l build-artifacts.zip .
- name: Display structure of downloaded files
run: ls -R
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Lint code
run: yarn lint
- name: Lint API
run: yarn lint-api
unit-tests:
needs: build2
strategy:
matrix:
node-version: [16.x, 18.x]
runs-on: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.runs-on }}
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build-artifacts
- name: Extract archive
run: zip -r build-artifacts.zip .
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
- name: Unit tests
run: yarn test-unit --forbid-only
# build:
# strategy:
# matrix:
# node-version: [16.x, 18.x]
# runs-on: [macos-latest, ubuntu-latest, windows-latest]
# runs-on: ${{ matrix.runs-on }}
# steps:
# - uses: actions/checkout@v3
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v3
# with:
# node-version: ${{ matrix.node-version }}
# cache: 'yarn'
# - name: Install dependencies and build
# run: yarn --frozen-lockfile
# - name: Unit tests
# run: yarn test-unit --forbid-only
# - name: Lint code
# run: yarn lint
# - name: Lint API
# run: yarn lint-api
# integration-tests-chromium:
# strategy:
# matrix:
# node-version: [18.x]
# runs-on: [macos-latest, ubuntu-latest, windows-latest]
# runs-on: ${{ matrix.runs-on }}
# steps:
# - uses: actions/checkout@v3
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v3
# with:
# node-version: ${{ matrix.node-version }}
# cache: 'yarn'
# - name: Install dependencies and build
# run: yarn --frozen-lockfile
# - name: Install playwright
# run: npx playwright install
# - name: Integration tests (Chromium)
# run: yarn test-api-chromium --headless --forbid-only
# integration-tests-firefox:
# strategy:
# matrix:
# node-version: [18.x]
# runs-on: [macos-latest, ubuntu-latest, windows-latest]
# runs-on: ${{ matrix.runs-on }}
# steps:
# - uses: actions/checkout@v3
# - name: Use Node.js ${{ matrix.node-version }}
# uses: actions/setup-node@v3
# with:
# node-version: ${{ matrix.node-version }}
# cache: 'yarn'
# - name: Install dependencies and build
# run: yarn --frozen-lockfile
# - name: Install playwright
# run: npx playwright install
# - name: Integration tests (Chromium)
# run: yarn test-api-firefox --headless --forbid-only