-
Notifications
You must be signed in to change notification settings - Fork 52
149 lines (120 loc) · 3.3 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
145
146
147
148
149
name: CI
on:
push:
branches:
- main
pull_request:
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler:
- g++
- clang++
optimization: [ 0, 1, 2, 3]
name: Test ${{matrix.compiler}} -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@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 "CXX=${{ matrix.compiler }}" >> $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
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
- name: Upload coverage
uses: codecov/codecov-action@v2
with:
files: src/beagleg.coverage
fail_ci_if_error: true
verbose: true
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-11
clang-format --version
- name: Run formatting style check
run: ./.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-11
- name: Configure shell
# Since we're not compiling on the Beaglebone, disable arm specifics
run: |
echo 'ARM_COMPILE_FLAGS=' >> $GITHUB_ENV
- name: Run clang tidy
run: ./.github/bin/run-clang-tidy.sh