Skip to content

[fiber] Add stack overflow check in every yield #2828

[fiber] Add stack overflow check in every yield

[fiber] Add stack overflow check in every yield #2828

Workflow file for this run

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 STM32C0 Series
if: always()
run: |
(cd examples && ../tools/scripts/examples_compile.py nucleo_c031c6)
- 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