-
Notifications
You must be signed in to change notification settings - Fork 55
155 lines (132 loc) · 4.15 KB
/
build.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
name: Code checker
on:
pull_request:
types:
- review_requested
push:
concurrency:
group: dev-build-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
tests-run:
name: Tests run
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Check out Luos repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10.5"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel
pip install platformio
- name: Run PlatformIO Unit Tests
run: |
# Clean all projects
platformio run -t clean
# Run Unit tests
platformio test -vvv
- if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get install -y lcov
lcov -d .pio/build/native/ -c -o lcov.info
lcov --remove lcov.info '*/usr/*' '*/Platforms/*' '*/bootloader/*' '*/.pio/*' '*/HAL/*' '*/test/*' '*/network/*' -o lcov.info
- if: matrix.os == 'ubuntu-latest'
name: Coveralls
uses: coverallsapp/github-action@v2
unit-tests:
name: Unit tests
needs: tests-run
runs-on: ubuntu-latest
steps:
- run: echo "Tests succeed!"
code-format:
name: Code format
runs-on: ubuntu-latest
steps:
- name: Check out Luos repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10.5"
- name: Set up Node
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install -g [email protected]
- name: Check for code format
run: python .github/workflows/run-clang-format.py -r .
examples-build:
name: Examples build
runs-on: ${{ matrix.os }}
strategy:
matrix:
project_folders: [examples/projects/l0,
examples/projects/Arduino,
examples/projects/NUCLEO-L432KC,
examples/projects/STM32F4-discovery,
examples/projects/NUCLEO-F401RE,
examples/projects/NUCLEO-F410RB,
examples/projects/NUCLEO-G431KB,
examples/projects/NUCLEO-G474RE,
examples/projects/NUCLEO-F072RB,
examples/projects/NUCLEO-L073RZ,
examples/projects/STM32L4S5_discovery,
# examples/projects/ESP32,
examples/projects/native
]
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Check out Luos repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10.5"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel
pip install platformio
- name: Run PlatformIO
run: |
for d in ${{ matrix.project_folders }}/*/
do
# Parse all folder
if [ -f "$d/platformio.ini" ]
then
# This is a PIO project compile it
echo "Compiling : $d"
platformio run -d $d
else
# This folder could contain other projects, continue digging
for dd in $d*/
do
# Parse all folder
if [ -f "$dd/platformio.ini" ]
then
# This is a PIO project compile it
echo "Compiling : $d"
platformio run -d $dd
fi
done
fi
done
# ******** missing bootloader CI ********
build-success:
name: Build success
needs: examples-build
runs-on: ubuntu-latest
steps:
- run: echo "Build succeed!"