-
Notifications
You must be signed in to change notification settings - Fork 52
213 lines (174 loc) · 5.03 KB
/
Copy pathci.yml
File metadata and controls
213 lines (174 loc) · 5.03 KB
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
name: CI
on:
push:
branches:
- main
pull_request:
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler:
- g++
- clang++
cpp_standard:
- "-std=c++17"
- "-std=c++20"
optimization: [ 0, 1, 2, 3]
name: Test ${{matrix.compiler}} ${{ matrix.cpp_standard }} -O${{matrix.optimization}}
steps:
- name: Prepare
run: |
sudo apt-get update -qq
sudo apt install -y g++ clang pkg-config libgtest-dev libgmock-dev valgrind
- uses: actions/checkout@v7
with:
submodules: recursive
fetch-depth: 0
- name: Configure shell
# Since we're not compiling on the Beaglebone, disable arm specifics
run: |
echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV
echo "CPP_STANDARD=${{ matrix.cpp_standard }}" >> $GITHUB_ENV
echo "BEAGLEG_OPT_CFLAGS=-O${{ matrix.optimization }} -Werror" >> $GITHUB_ENV
- name: Build
run: |
make
- name: Test
run: |
make test
- name: Valgrind Test
run: |
make valgrind-test
build-genirq-backend:
runs-on: ubuntu-latest
name: Build PRU_BACKEND=genirq
steps:
- name: Prepare
run: |
sudo apt-get update -qq
sudo apt install -y g++ clang pkg-config libgtest-dev libgmock-dev
- uses: actions/checkout@v7
with:
submodules: recursive
- name: Configure shell
run: |
echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV
echo "BEAGLEG_OPT_CFLAGS=-O2 -Werror" >> $GITHUB_ENV
- name: Build with g++
run: |
make -C src PRU_BACKEND=genirq ../machine-control
- name: Build with clang++
run: |
make -C src clean
CXX=clang++ make -C src PRU_BACKEND=genirq ../machine-control
build-and-test_cpp11:
runs-on: ubuntu-latest
strategy:
fail-fast: false
name: Test c++11-compat
steps:
- name: Prepare
run: |
sudo apt-get update -qq
sudo apt install -y clang pkg-config
- uses: actions/checkout@v7
with:
submodules: recursive
fetch-depth: 0
- name: Install GoogleTest 1.12.1
run: |
git clone --branch release-1.12.1 --depth 1 https://github.com/google/googletest.git
cd googletest
cmake -B build -DCMAKE_BUILD_TYPE=Release
sudo cmake --build build --target install
- name: Configure shell
# Since we're not compiling on the Beaglebone, disable arm specifics
run: |
echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV # g++ does not support c++11 anymore
echo "CPP_STANDARD=-std=c++11" >> $GITHUB_ENV
echo "BEAGLEG_OPT_CFLAGS=-O2 -Werror" >> $GITHUB_ENV
- name: Build
run: |
make
- name: Test
run: |
make test
hardware-targets:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
hardware: # TODO: can the matrix be derived from directory hardware/* ?
- BUMPS
- CRAMPS
- Pockegotion
- VGEN5
name: Hardware ${{matrix.hardware}}
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: Configure shell
# Since we're not compiling on the Beaglebone, disable arm specifics
run: |
echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV
echo BEAGLEG_HARDWARE_TARGET="${{matrix.hardware}}" >> $GITHUB_ENV
- name: Build
run: |
make
Coverage:
runs-on: ubuntu-latest
name: Coverage prepare
steps:
- name: Prepare
run: |
sudo apt-get update -qq
sudo apt install -y g++ pkg-config libgtest-dev libgmock-dev lcov
- uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: Configure shell
# Since we're not compiling on the Beaglebone, disable arm specifics
run: |
echo 'ARM_COMPILE_FLAGS=' >> $GITHUB_ENV
- name: Coverage run
run: |
make -C src beagleg.coverage
# todo: do something with coverage
CodeFormatting:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install Dependencies
run: |
sudo apt-get install clang-format-19
clang-format-19 --version
- name: Run formatting style check
run: |
export CLANG_FORMAT=clang-format-19
./.github/bin/run-clang-format.sh
ClangTidy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
fetch-depth: 0
- name: Install Dependencies
run: |
sudo apt-get install pkg-config libgtest-dev libgmock-dev bear clang-tidy-19
- name: Run clang tidy
run: |
# for now, just report, but don't fail the CI
./.github/bin/run-clang-tidy-cached.cc || true