-
Notifications
You must be signed in to change notification settings - Fork 526
152 lines (127 loc) · 4.03 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
140
141
142
143
144
145
146
147
148
149
150
151
152
name: CI
on:
push:
branches: [main, release/*]
pull_request:
jobs:
test:
runs-on: ${{ matrix.os }}
# Run each command in parallel with the same setup steps.
strategy:
fail-fast: false
matrix:
os:
- ubuntu-20.04
config:
# Specify names so that the GitHub branch protection settings for
# required checks don't need to change if we ever change the commands used.
- name: lint
command: |
# lint steps
set -x
yarn license-check
yarn dedupe --check
yarn run tsc --noEmit # typecheck files that are not included by webpack or package builds
yarn run lint:ci
yarn run lint:unused-exports
yarn run lint:dependencies
- name: packages
command: yarn run build:packages
- name: web
command: yarn run web:build:prod
- name: build benchmark
command: yarn run benchmark:build:prod
- name: test
command: yarn run test --maxWorkers=100%
include:
- os: windows-2019
config:
name: packages
command: echo complete
name: ${{ matrix.config.name }} (${{ matrix.os }})
steps:
- uses: actions/[email protected]
with:
lfs: true
- uses: actions/[email protected]
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/[email protected]
with:
path: |
.yarn/cache
**/node_modules
key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: v5-${{ runner.os }}-yarn-
- run: yarn install --immutable
- run: ${{ matrix.config.command }}
storybook:
name: storybook (ubuntu-20.04)
runs-on: ubuntu-20.04
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0 # Required for Chromatic
lfs: true
- uses: actions/[email protected]
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/[email protected]
with:
path: |
.yarn/cache
**/node_modules
key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: v5-${{ runner.os }}-yarn-
- run: yarn install --immutable
- run: yarn workspace @foxglove/studio-base run storybook:build
# Chromatic only runs on pushes or pulls to our source repo
- uses: chromaui/action@v10
if: ${{ github.event.repository.full_name == 'foxglove/studio' }}
with:
autoAcceptChanges: main
exitOnceUploaded: true
onlyChanged: true
projectToken: f50040a29fb8 # plaintext to allow building on PRs from forks
storybookBuildDir: storybook-static
integration:
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
name: integration (${{ matrix.os }})
steps:
- uses: actions/[email protected]
with:
lfs: true
- uses: actions/[email protected]
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/[email protected]
with:
path: |
.yarn/cache
**/node_modules
key: v5-${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: v5-${{ runner.os }}-yarn-
- run: yarn install --immutable
- name: test:integration
if: matrix.os == 'ubuntu-20.04'
uses: GabrielBB/[email protected]
with:
working-directory: ./
run: yarn run test:integration
- name: test:web-integration
if: matrix.os == 'ubuntu-20.04'
run: yarn run test:web-integration
- name: test:integration
if: matrix.os != 'ubuntu-20.04'
run: yarn run test:integration