Add support for multiple configuration to deduplicate examples #2376
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run tests on Linux | |
on: [pull_request] | |
jobs: | |
unittests-linux-generic: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Check environment | |
run: | | |
env | |
locale -a | |
python --version || true | |
python3 --version || true | |
python3 -c "import os; print(os.cpu_count())" | |
which scons | |
scons --version | |
which g++ | |
g++ --version | |
which arm-none-eabi-g++ | |
arm-none-eabi-g++ --version | |
which lbuild | |
lbuild --version | |
- name: Check for Trailing Whitespace | |
if: always() | |
run: | | |
python3 tools/scripts/rm_whitespace.py | |
- name: Check for Expired Deprecations | |
if: startsWith(github.head_ref, 'release/') | |
run: | | |
egrep -rI "DEPRECATED?:? +`basename ${{ github.head_ref }}`" . || true | |
return $(egrep -rI "DEPRECATED?:? +`basename ${{ github.head_ref }}`" . | wc -l) | |
- name: Synchronize Documentation | |
if: always() | |
run: | | |
git checkout . | |
python3 tools/scripts/synchronize_docs.py -d | |
- name: Synchronize HAL Support Matrix | |
if: always() | |
run: | | |
git checkout . | |
python3 tools/scripts/generate_hal_matrix.py -d | |
- name: Check Examples | |
if: always() | |
run: | | |
git checkout . | |
python3 tools/scripts/examples_check.py | |
- name: Hosted Unittests | |
if: always() | |
run: | | |
(cd test && make run-hosted-linux) | |
- name: Compile STM32 Unittests | |
if: always() | |
run: | | |
(cd test && make compile-nucleo-l432kc) | |
(cd test && make compile-nucleo-f091rc_A) | |
(cd test && make compile-nucleo-f091rc_B) | |
(cd test && make compile-nucleo-f103rb_A) | |
(cd test && make compile-nucleo-f103rb_B) | |
(cd test && make compile-nucleo-f401re) | |
(cd test && make compile-nucleo-f411re) | |
(cd test && make compile-nucleo-f429zi) | |
(cd test && make compile-nucleo-f446re) | |
(cd test && make compile-nucleo-f446ze) | |
(cd test && make compile-nucleo-f767zi) | |
(cd test && make compile-nucleo-g474re) | |
(cd test && make compile-nucleo-h723zg) | |
(cd test && make compile-nucleo-l432kc) | |
(cd test && make compile-nucleo-l496zg-p) | |
(cd test && make compile-nucleo-l552ze-q) | |
- name: Linux Examples | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py linux) | |
- name: Generic Examples | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py generic) | |
- name: Examples SAMD Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py feather_m4 samd) | |
- name: Examples SAMG Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py samg55_xplained_pro) | |
- name: Examples SAME70 Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py same70_xplained) | |
- name: Examples SAMV Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py samv samv71_xplained_ultra) | |
- name: Examples RP20 Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py rp_pico) | |
- name: Execute Python Scripts | |
if: always() | |
run: | | |
python3 tools/scripts/authors.py --handles --count --shoutout --since 2017-01-01 | |
python3 tools/xpcc_generator/builder/system_layout.py examples/xpcc/xml/communication.xml -o /tmp | |
stm32-examples: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Examples STM32F0 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f0_discovery stm32f072_discovery nucleo_f031k6 nucleo_f072rb nucleo_f042k6 stm32f030f4p6_demo_board) | |
- name: Examples STM32F1 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f1_discovery nucleo_f103rb blue_pill_f103) | |
- name: Examples STM32F3 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f3_discovery nucleo_f303re) | |
- name: Examples STM32F7 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f746g_discovery stm32f769i_discovery nucleo_f767zi) | |
- name: Examples STM32G0 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_g071rb) | |
- name: Examples STM32L0 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l031k6) | |
- name: Examples STM32L4 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l476rg nucleo_l432kc nucleo_l452re) | |
- name: Examples STM32L5 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l552ze-q) | |
- name: Examples STM32G4 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_g474re) | |
- name: Examples STM32H7 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_h723zg) | |
stm32f4-examples-1: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Examples STM32F4 Only Discovery Board | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f4_discovery stm32f469_discovery stm32f401_discovery) | |
stm32f4-examples-2: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Install protobuf==3.20.1 grpcio-tools (pip) | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager protobuf==3.20.1 grpcio-tools | |
- name: Examples STM32F4 Without Discovery Board | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_f401re nucleo_f411re nucleo_f429zi nucleo_f446re nucleo_f446ze nucleo_f439zi stm32f407vet6_devebox stm32_f4ve) | |
avr-examples: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-avr:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Check environment | |
run: | | |
which avr-g++ | |
avr-g++ --version | |
- name: Examples AVR Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py avr arduino_uno arduino_nano srxe) | |
- name: Compile AVR Unittests AT90CAN | |
if: always() | |
run: | | |
(cd test && make compile-al-avreb-can) | |
- name: Compile AVR Unittests Arduino | |
if: always() | |
run: | | |
(cd test && make compile-arduino-uno) | |
(cd test && make compile-arduino-nano_A compile-arduino-nano_C compile-arduino-nano_D compile-arduino-nano_E compile-arduino-nano_G) | |
- name: Compile AVR Unittests ATmega | |
if: always() | |
run: | | |
(cd test && make compile-mega-2560-pro_A compile-mega-2560-pro_B) | |
- name: Quick compile HAL for AVR Devices | |
if: always() | |
run: | | |
(cd test/all && python3 run_all.py at --quick) | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hal-compile-quick-avr | |
path: test/all/log | |
hal-compile-quick-1: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Quick compile HAL for Cortex-M Part 1 | |
if: always() | |
run: | | |
(cd test/all && python3 run_all.py stm32 sam rp --quick --split 4 --part 0) | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hal-compile-quick-1 | |
path: test/all/log | |
hal-compile-quick-2: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Quick compile HAL for Cortex-M Part 2 | |
if: always() | |
run: | | |
(cd test/all && python3 run_all.py stm32 sam rp --quick --split 4 --part 1) | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hal-compile-quick-2 | |
path: test/all/log | |
hal-compile-quick-3: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Quick compile HAL for Cortex-M Part 3 | |
if: always() | |
run: | | |
(cd test/all && python3 run_all.py stm32 sam rp --quick --split 4 --part 2) | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hal-compile-quick-3 | |
path: test/all/log | |
hal-compile-quick-4: | |
runs-on: ubuntu-22.04 | |
container: | |
image: ghcr.io/modm-ext/modm-build-cortex-m:2023-03-12 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Quick compile HAL for Cortex-M Part 4 | |
if: always() | |
run: | | |
(cd test/all && python3 run_all.py stm32 sam rp --quick --split 4 --part 3) | |
- name: Upload log artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: hal-compile-quick-4 | |
path: test/all/log | |
# Niklas: Running on the old container until I can figure out why the doc generator hangs | |
build-docs-test: | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 30 | |
container: | |
image: ghcr.io/modm-ext/modm-build-base:2022-09-27 | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Fix Git permission/ownership problem | |
run: | | |
git config --global --add safe.directory /__w/modm/modm | |
- name: Update lbuild | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager modm | |
- name: Install mkdocs mkdocs-material (pip) | |
run: | | |
pip3 install --upgrade --upgrade-strategy=eager mkdocs mkdocs-material | |
mkdocs --version | |
pip3 show mkdocs-material | |
- name: Test run of docs.modm.io-generator-script | |
if: always() | |
run: | | |
export TERM=xterm-256color | |
export COLUMNS=120 | |
python3 tools/scripts/docs_modm_io_generator.py -t -c -j4 -d | |
- name: Upload Doxypress Documentation | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-docs-test | |
path: modm-api-docs.tar.gz | |
- name: Build Homepage | |
if: always() | |
run: | | |
python3 tools/scripts/synchronize_docs.py | |
python3 tools/scripts/generate_module_docs.py | |
cat docs/mkdocs.yml | |
ls -l docs/src/reference | |
ls -l docs/src/reference/config | |
ls -l docs/src/reference/module | |
(cd docs && mkdocs build) | |
- name: Upload Homepage Documentation | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-homepage-test | |
path: docs/modm.io | |
# FIXME: Allow localhost:port to work with Docker | |
# - name: Check Homepage | |
# run: | | |
# apt install -y nodejs npm | |
# npm install -g broken-link-checker-local | |
# blcl modm/docs/modm.io/docs -ro --host-requests 100 --filter-level 1 |