-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (114 loc) · 3.75 KB
/
ci.yaml
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
name: CI
on:
- push
- workflow_dispatch
permissions:
contents: write
jobs:
prettier:
name: Prettier check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: latest
- name: Install node
uses: actions/setup-node@v4
with:
node-version: '20.10.0'
cache: 'pnpm'
- name: Install frontend dependencies, check Prettier formatting
run: |
pnpm i
pnpm lint:prettier
cpp_format:
name: C++ Formatting Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run clang-format style check for C/C++/Protobuf programs.
uses: jidicula/[email protected]
with:
clang-format-version: '17'
frontend_eslint:
name: ESLint Frontend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: latest
- name: Install node
uses: actions/setup-node@v4
with:
node-version: '20.10.0'
cache: 'pnpm'
- name: Install frontend dependencies, run ESLint
run: |
pnpm i
pnpm lint:frontend:eslint
frontend_typescript:
name: Typescript Frontend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: latest
- name: Install node
uses: actions/setup-node@v4
with:
node-version: '20.10.0'
cache: 'pnpm'
- name: Install frontend dependencies, check typing
run: |
pnpm i
pnpm lint:frontend:ts
actionlint:
name: Actionlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: actionlint
uses: raven-actions/actionlint@v1
build_esp:
name: Build and archive ESP firmware
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build ESP binaries
uses: ./.github/actions/build-esp
- name: Archive build output artifacts
uses: actions/upload-artifact@v4
with:
name: merged_firmware
path: build/merged_firmware.bin
compression-level: 0
build_simulator:
name: Build simulator binary
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install SDL2
run: |
sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"
sudo apt-get update -y -qq
sudo apt-get install libsdl2-dev
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Build PlatformIO Project
run: |
cd simulator
pio run --verbose --environment emulator