Properly support <atomic> on AVR and Cortex-M #2615
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@v4 | |
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 samd21_xplained_pro) | |
- name: Examples SAMG Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py samg55_xplained_pro) | |
- name: Examples SAME5x Devices | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py same54_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 feather_rp2040 rp_pico thingplus_rp2040) | |
- 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 | |
python3 tools/font_creator/font_export.py tools/font_creator/fonts/all_caps_3x5.font /tmp/all_caps_converted | |
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@v4 | |
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_f091rc nucleo_f042k6 stm32f030f4p6_demo_board) | |
- name: Examples STM32F1 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f1_discovery nucleo_f103rb olimexino_stm32 blue_pill_f103 black_pill_f103) | |
- name: Examples STM32F3 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f3_discovery nucleo_f303k8 nucleo_f303re nucleo_f334r8) | |
- name: Examples STM32F7 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32f746g_discovery stm32f769i_discovery nucleo_f746zg nucleo_f767zi) | |
- name: Examples STM32G0 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_g070rb nucleo_g071rb) | |
- name: Examples STM32L0 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l031k6 nucleo_l053r8) | |
- name: Examples STM32L1 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l152re stm32l1_discovery) | |
- name: Examples STM32L4 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py stm32l476_discovery nucleo_l476rg nucleo_l432kc nucleo_l452re nucleo_l496zg-p) | |
- name: Examples STM32L5 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_l552ze-q) | |
- name: Examples STM32U5 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_u575zi-q) | |
- name: Examples STM32G4 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_g474re nucleo_g431rb nucleo_g431kb) | |
- name: Examples STM32H7 Series | |
if: always() | |
run: | | |
(cd examples && ../tools/scripts/examples_compile.py nucleo_h743zi nucleo_h723zg stm32h750vbt6_devebox) | |
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@v4 | |
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 stm32f429_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@v4 | |
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 black_pill_f401 black_pill_f411 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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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@v4 | |
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 |