forked from Lichtblick-Suite/lichtblick
-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (118 loc) · 3.73 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
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/checkout@v4.1.1
with:
lfs: true
- uses: actions/setup-node@v4.0.1
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/cache@v4.0.0
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/checkout@v4.1.1
with:
fetch-depth: 0 # Required for Chromatic
lfs: true
- uses: actions/setup-node@v4.0.1
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/cache@v4.0.0
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/checkout@v4.1.1
with:
lfs: true
- uses: actions/setup-node@v4.0.1
with:
node-version: 16.17
- run: corepack enable yarn
- name: Restore cache
uses: actions/cache@v4.0.0
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:web-integration
if: matrix.os == 'ubuntu-20.04'
run: yarn run test:web-integration