forked from Lichtblick-Suite/lichtblick
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (120 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
142
143
144
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
- name: packages
command: yarn run build:packages
- name: web
command: yarn run web:build:prod
- name: test
command: yarn run test --maxWorkers=100%
- name: pack studio-base
command: yarn workspace @foxglove/studio-base pack
include:
- os: windows-2019
config:
name: packages
command: echo complete
name: ${{ matrix.config.name }} (${{ matrix.os }})
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-node@v3.4.1
with:
node-version: 14.x
- name: Restore cache
uses: actions/cache@v3
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@v3
with:
fetch-depth: 0 # Required for Chromatic
lfs: true
- uses: actions/setup-node@v3.4.1
with:
node-version: 14.x
- name: Restore cache
uses: actions/cache@v3
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@v1
if: ${{ github.event.repository.full_name == 'foxglove/studio' }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
projectToken: f50040a29fb8
storybookBuildDir: storybook-static
autoAcceptChanges: main
exitOnceUploaded: true
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@v3
with:
lfs: true
- uses: actions/setup-node@v3.4.1
with:
node-version: 14.x
- name: Restore cache
uses: actions/cache@v3
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/xvfb-action@v1.6
with:
working-directory: ./
run: yarn run test:integration
- name: test:integration
if: matrix.os != 'ubuntu-20.04'
run: yarn run test:integration