-
Notifications
You must be signed in to change notification settings - Fork 0
163 lines (151 loc) · 4.02 KB
/
build_simulator.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
153
154
155
156
157
name: Build Simulator
on:
workflow_dispatch:
inputs:
lin_clang:
description: 'Build Simulator on Linux clang'
required: true
default: true
type: boolean
lin_gcc:
description: 'Build Simulator on Linux gcc'
required: true
default: true
type: boolean
win_gcc:
description: 'Build Simulator on Windows gcc'
required: true
default: true
type: boolean
mac_clang:
description: 'Build Simulator on Mac clang'
required: true
default: true
type: boolean
push:
branches:
- main
paths:
- 'simulator/**'
- 'shared/**'
- 'firmware/src/gui/**'
- 'firmware/src/VCV_adaptor/**'
- 'firmware/src/patch**'
- 'firmware/src/params/**'
- 'firmware/src/console/**'
- 'firmware/vcv_ports/**'
- 'firmware/lib/lvgl/**'
- '!**.md' # Skip docs
- '!shared/svgextract' # Skip generator script (still run CI if generated files change)
- '!shared/gen_minblep' # Skip generator script (still run CI if generated files change)
- '!shared/tableGen' # Skip generator script (still run CI if generated files change)
jobs:
build-lin-gcc:
if: ${{ github.event_name == 'push' || inputs.lin_gcc }}
name: linux-gcc
strategy:
fail-fast: false
runs-on: 'ubuntu-latest'
defaults:
run:
shell: 'bash {0}'
env:
CC: gcc
CXX: g++
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
token: ${{ secrets.CHECKOUT_TOKEN }}
- name: Install linux dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build libsdl2-dev
- name: 'Build'
run: |
cd simulator
cmake -G Ninja -B build
cmake --build build
build-lin-clang:
if: ${{ github.event_name == 'push' || inputs.lin_clang }}
name: linux-clang
strategy:
fail-fast: false
runs-on: 'ubuntu-latest'
defaults:
run:
shell: 'bash {0}'
env:
CC: clang
CXX: clang++
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
token: ${{ secrets.CHECKOUT_TOKEN }}
- name: Install linux dependencies
run: |
sudo apt-get update
sudo apt-get install ninja-build libsdl2-dev
- name: 'Build'
run: |
cd simulator
cmake -G Ninja -B build
cmake --build build
build-win-gcc:
if: ${{ github.event_name == 'push' || inputs.win_gcc }}
name: wib-gcc
strategy:
fail-fast: false
runs-on: 'windows-latest'
defaults:
run:
shell: 'msys2 {0}'
env:
CC: gcc
CXX: g++
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
token: ${{ secrets.CHECKOUT_TOKEN }}
- name: Install windows dependencies
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: git make mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-cmake mingw-w64-x86_64-pkgconf mingw-w64-x86_64-ninja mingw-w64-x86_64-SDL2
- name: 'Build'
run: |
cd simulator
cmake -G Ninja -B build
cmake --build build
build-mac-clang:
if: ${{ github.event_name == 'push' || inputs.mac_clang }}
name: mac-clang
strategy:
fail-fast: false
runs-on: 'macos-latest'
defaults:
run:
shell: 'bash {0}'
env:
CC: clang
CXX: clang++
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
token: ${{ secrets.CHECKOUT_TOKEN }}
- name: Install mac dependencies
run: |
brew install ninja sdl2
- name: 'Build'
run: |
cd simulator
cmake -G Ninja -B build
cmake --build build