-
Notifications
You must be signed in to change notification settings - Fork 1.6k
139 lines (132 loc) · 4.01 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
130
131
132
133
134
135
136
137
138
139
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: |
cd ${{ github.workspace }}
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 (Linux, macOS)
if: runner.os != 'Windows'
run: unzip -l build-artifacts.zip ${{ github.workspace }}
- name: Unzip artifacts (Windows)
if: runner.os == 'Windows'
run: 7z x build-artifacts.zip -o${{ github.workspace }}
- 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: Unzip artifacts (Linux, macOS)
if: runner.os != 'Windows'
run: unzip -l build-artifacts.zip ${{ github.workspace }}
- name: Unzip artifacts (Windows)
if: runner.os == 'Windows'
run: 7z x build-artifacts.zip -o${{ github.workspace }}
- 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