RT-Thread BSP build check #45
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: RT-Thread BSP build check | |
# Controls when the action will run. Triggers the workflow on push or pull request | |
# events but only for the RT-Thread organization master branch | |
on: | |
# Runs at 16:00 UTC (BeiJing 00:00) every day | |
schedule: | |
- cron: '0 16 * * *' | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- documentation/** | |
- '**/README.md' | |
- '**/README_zh.md' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- documentation/** | |
- '**/README.md' | |
- '**/README_zh.md' | |
workflow_dispatch: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: ${{ matrix.legs.RTT_BSP }} | |
if: github.repository_owner == 'RT-Thread' | |
strategy: | |
fail-fast: false | |
matrix: | |
legs: | |
- RTT_BSP: "others_at32_hc32" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "qemu-vexpress-a9" | |
- "airm2m/air32f103" | |
- "acm32/acm32f0x0-nucleo" | |
- "CME_M7" | |
- "apollo2" | |
- "asm9260t" | |
- "allwinner_tina" | |
- "ft32/ft32f072xb-starter" | |
- "mini2440" | |
- "at91/at91sam9g45" | |
- "at91/at91sam9260" | |
- "wch/arm/ch32f103c8-core" | |
- "wch/arm/ch32f203r-evt" | |
- "synwit/swm320" | |
- "synwit/swm341" | |
- "beaglebone" | |
- "zynqmp-r5-axu4ev" | |
- "at32/at32f402-start" | |
- "at32/at32f403a-start" | |
- "at32/at32f405-start" | |
- "at32/at32f407-start" | |
- "at32/at32f413-start" | |
- "at32/at32f415-start" | |
- "at32/at32f421-start" | |
- "at32/at32f423-start" | |
- "at32/at32f425-start" | |
- "at32/at32f435-start" | |
- "at32/at32f437-start" | |
- "yichip/yc3122-pos" | |
- "hc32/ev_hc32f4a0_lqfp176" | |
- "hc32/ev_hc32f460_lqfp100_v2" | |
- "hc32l196" | |
- "mm32/mm32f3270-100ask-pitaya" | |
- "mm32f327x" | |
- "sam7x" | |
- "hk32/hk32f030c8-mini" | |
- "acm32/acm32f0x0-nucleo" | |
- "acm32/acm32f4xx-nucleo" | |
- "rm48x50" | |
- RTT_BSP: "stm32l4_f0_f1" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "stm32/stm32l4r5-st-nucleo" | |
- "stm32/stm32l4r9-st-eval" | |
- "stm32/stm32l4r9-st-sensortile-box" | |
- "stm32/stm32l010-st-nucleo" | |
- "stm32/stm32l053-st-nucleo" | |
- "stm32/stm32l412-st-nucleo" | |
- "stm32/stm32l431-BearPi" | |
- "stm32/stm32l432-st-nucleo" | |
- "stm32/stm32l433-ali-startkit" | |
- "stm32/stm32l433-st-nucleo" | |
- "stm32/stm32l452-st-nucleo" | |
- "stm32/stm32l475-atk-pandora" | |
- "stm32/stm32l475-st-discovery" | |
- "stm32/stm32l476-st-nucleo" | |
- "stm32/stm32l496-ali-developer" | |
- "stm32/stm32l496-st-nucleo" | |
- "stm32/stm32l496-st-discovery" | |
- "stm32/stm32f072-st-nucleo" | |
- "stm32/stm32f091-st-nucleo" | |
- "stm32/stm32f103-100ask-mini" | |
- "stm32/stm32f103-100ask-pro" | |
- "stm32/stm32f103-atk-nano" | |
- "stm32/stm32f103-atk-warshipv3" | |
- "stm32/stm32f103-blue-pill" | |
- "stm32/stm32f103-dofly-lyc8" | |
- "stm32/stm32f103-dofly-M3S" | |
- "stm32/stm32f103-fire-arbitrary" | |
- "stm32/stm32f103-gizwits-gokitv21" | |
- "stm32/stm32f103-hw100k-ibox" | |
- "stm32/stm32f103-onenet-nbiot" | |
- "stm32/stm32f103-yf-ufun" | |
- "stm32/stm32f103-ys-f1pro" | |
- "stm32/stm32f107-uc-eval" | |
- RTT_BSP: "stm32_f2_f4" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "stm32/stm32f207-st-nucleo" | |
- "stm32/stm32f302-st-nucleo" | |
- "stm32/stm32f334-st-nucleo" | |
- "stm32/stm32f401-st-nucleo" | |
- "stm32/stm32f401-weact-blackpill" | |
- "stm32/stm32f405-smdz-breadfruit" | |
- "stm32/stm32f407-armfly-v5" | |
- "stm32/stm32f407-atk-explorer" | |
- "stm32/stm32f407-robomaster-c" | |
- "stm32/stm32f407-st-discovery" | |
- "stm32/stm32f410-st-nucleo" | |
- "stm32/stm32f411-atk-nano" | |
- "stm32/stm32f411-st-nucleo" | |
- "stm32/stm32f411-weact-blackpill" | |
- "stm32/stm32f412-st-nucleo" | |
- "stm32/stm32f413-st-nucleo" | |
- "stm32/stm32f427-robomaster-a" | |
- "stm32/stm32f429-armfly-v6" | |
- "stm32/stm32f429-atk-apollo" | |
- "stm32/stm32f429-fire-challenger" | |
- "stm32/stm32f429-st-disco" | |
- "stm32/stm32f446-st-nucleo" | |
- "stm32/stm32f469-st-disco" | |
- RTT_BSP: "stm32_f7_g0_h7_mp15_u5_h5_wb5" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "stm32/stm32f746-st-disco" | |
- "stm32/stm32f746-st-nucleo" | |
- "stm32/stm32f767-atk-apollo" | |
- "stm32/stm32f767-fire-challenger-v1" | |
- "stm32/stm32f767-st-nucleo" | |
- "stm32/stm32f769-st-disco" | |
- "stm32/stm32f723-st-disco" | |
- "stm32/stm32g070-st-nucleo" | |
- "stm32/stm32g071-st-nucleo" | |
- "stm32/stm32g431-st-nucleo" | |
- "stm32/stm32g474-st-nucleo" | |
- "stm32/stm32h563-st-nucleo" | |
- "stm32/stm32h743-armfly-v7" | |
- "stm32/stm32h743-atk-apollo" | |
- "stm32/stm32h743-openmv-h7plus" | |
- "stm32/stm32h743-st-nucleo" | |
- "stm32/stm32h747-st-discovery" | |
- "stm32/stm32h750-artpi" | |
- "stm32/stm32h750-weact-ministm32h7xx" | |
- "stm32/stm32h750-fk750m1-vbt6" | |
- "stm32/stm32mp157a-st-discovery" | |
- "stm32/stm32mp157a-st-ev1" | |
- "stm32/stm32u575-st-nucleo" | |
- "stm32/stm32u585-iot02a" | |
- "stm32/stm32wb55-st-nucleo" | |
- RTT_BSP: "nxp_renesas" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "lpc55sxx/lpc55s69_nxp_evk" | |
- "lpc55sxx/lpc55s28_nxp_evk" | |
- "lpc55sxx/lpc55s06_nxp_evk" | |
- "lpc55sxx/lpc55s16_nxp_evk" | |
- "lpc55sxx/lpc55s36_nxp_evk" | |
- "lpc178x" | |
- "lpc408x" | |
- "lpc1114" | |
- "lpc2148" | |
- "lpc2478" | |
- "lpc5410x" | |
- "lpc54114-lite" | |
- "imx6sx/cortex-a9" | |
- "imxrt/imxrt1052-atk-commander" | |
- "imxrt/imxrt1052-fire-pro" | |
- "imxrt/imxrt1052-nxp-evk" | |
- "imxrt/imxrt1052-seeed-ArchMix" | |
- "imxrt/imxrt1060-nxp-evk" | |
- "imxrt/imxrt1064-nxp-evk" | |
- "imxrt/imxrt1021-nxp-evk" | |
- "frdm-k64f" | |
- "lpc176x" | |
- "xplorer4330/M4" | |
#- "lpc43xx/M4" | |
- "renesas/ebf_qi_min_6m5" | |
- "renesas/ra6m4-cpk" | |
- "renesas/ra6m4-iot" | |
- "renesas/ra6m3-ek" | |
- "renesas/ra6m3-hmi-board" | |
- "renesas/ra4m2-eco" | |
- "renesas/ra2l1-cpk" | |
- "renesas/ra8m1-ek" | |
- RTT_BSP: "gd32_n32_apm32" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "gd32/arm/gd32103c-eval" | |
- "gd32/arm/gd32105c-eval" | |
- "gd32/arm/gd32105r-start" | |
- "gd32/arm/gd32107c-eval" | |
- "gd32/arm/gd32205r-start" | |
- "gd32/arm/gd32207i-eval" | |
- "gd32/arm/gd32303e-eval" | |
- "gd32/arm/gd32303c-start" | |
- "gd32/arm/gd32305r-start" | |
- "gd32/arm/gd32307e-start" | |
- "gd32/arm/gd32407v-start" | |
- "gd32/arm/gd32450z-eval" | |
- "gd32/arm/gd32470z-lckfb" | |
- "n32/n32g43xcl-stb" | |
- "n32/n32g45xcl-stb" | |
- "n32/n32g45xml-stb" | |
- "n32/n32g45xrl-stb" | |
- "n32/n32g45xvl-stb" | |
- "n32/n32g457qel-stb" | |
- "n32/n32g4frml-stb" | |
- "n32/n32l40xcl-stb" | |
- "n32/n32l43xml-stb" | |
- "n32/n32l43xrl-stb" | |
- "n32/n32l436-evb" | |
- "n32/n32wb45xl-evb" | |
- "apm32/apm32f103xe-minibroard" | |
- "apm32/apm32f407ig-minibroard" | |
- "apm32/apm32f407zg-evalboard" | |
- "apm32/apm32f072vb-miniboard" | |
- "apm32/apm32f107vc-evalboard" | |
- "apm32/apm32f030r8-miniboard" | |
- "apm32/apm32f051r8-evalboard" | |
- "apm32/apm32f091vc-miniboard" | |
- "apm32/apm32f103vb-miniboard" | |
- "apm32/apm32e103ze-evalboard" | |
- "apm32/apm32e103ze-tinyboard" | |
- "apm32/apm32s103vb-miniboard" | |
- RTT_BSP: "nordic_Infineon_TI_microchip" | |
RTT_TOOL_CHAIN: "sourcery-arm" | |
SUB_RTT_BSP: | |
- "nrf5x/nrf51822" | |
- "nrf5x/nrf52832" | |
- "nrf5x/nrf52833" | |
- "nrf5x/nrf52840" | |
- "nrf5x/nrf5340" | |
- "Infineon/psoc6-cy8ckit-062S2-43012" | |
- "Infineon/psoc6-cy8ckit-062-BLE" | |
- "Infineon/psoc6-cy8ckit-062s4" | |
- "Infineon/psoc6-cy8ckit-062-WIFI-BT" | |
- "Infineon/psoc6-cy8cproto-062S3-4343W" | |
- "Infineon/psoc6-evaluationkit-062S2" | |
- "fujitsu/mb9x/mb9bf500r" | |
- "fujitsu/mb9x/mb9bf506r" | |
- "fujitsu/mb9x/mb9bf618s" | |
- "fujitsu/mb9x/mb9bf568r" | |
- "raspberry-pico" | |
- "raspberry-pi/raspi3-32" | |
- "raspberry-pi/raspi4-32" | |
- "lm3s8962" | |
- "lm3s9b9x" | |
- "lm4f232" | |
- "tm4c123bsp" | |
- "tm4c129x" | |
- "msp432e401y-LaunchPad" | |
- "microchip/samc21" | |
- "microchip/same54" | |
- "microchip/same70" | |
- "smartfusion2" | |
- "maxim/max32660-evsys" | |
- RTT_BSP: "mips" | |
RTT_TOOL_CHAIN: "sourcery-mips" | |
SUB_RTT_BSP: | |
- "loongson/ls1bdev" | |
- "loongson/ls2kdev" | |
- "loongson/ls1cdev" | |
- RTT_BSP: "aarch64" | |
RTT_TOOL_CHAIN: "sourcery-aarch64" | |
SUB_RTT_BSP: | |
- "qemu-virt64-aarch64" | |
- "raspberry-pi/raspi3-64" | |
- "raspberry-pi/raspi4-64" | |
- "rockchip/rk3568" | |
- "phytium/aarch64" | |
- RTT_BSP: "riscv-none" | |
RTT_TOOL_CHAIN: "sourcery-riscv-none-embed" | |
SUB_RTT_BSP: | |
- "k210" | |
- RTT_BSP: "riscv64-unknown" | |
RTT_TOOL_CHAIN: "sourcery-riscv64-unknown-elf" | |
SUB_RTT_BSP: | |
- "bluetrum/ab32vg1-ab-prougen" | |
- "bouffalo_lab/bl60x" | |
- "bouffalo_lab/bl70x" | |
- RTT_BSP: "llvm-arm" | |
RTT_TOOL_CHAIN: "llvm-arm" | |
SUB_RTT_BSP: | |
- "stm32/stm32l475-atk-pandora" | |
- "renesas/ra6m3-hmi-board" | |
- RTT_BSP: "simulator" | |
RTT_TOOL_CHAIN: "gcc" | |
SUB_RTT_BSP: | |
- "simulator" | |
- RTT_BSP: "ESP32C3" | |
RTT_TOOL_CHAIN: "sourcery-riscv32-esp32" | |
SUB_RTT_BSP: | |
- "ESP32_C3" | |
- RTT_BSP: "i386-unknown" | |
RTT_TOOL_CHAIN: "sourcery-i386-unknown-elf" | |
SUB_RTT_BSP: | |
- "x86" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.8 | |
- name: Install Tools | |
shell: bash | |
run: | | |
sudo apt-get update | |
wget https://raw.githubusercontent.com/RT-Thread/env/master/install_ubuntu.sh | |
chmod 777 install_ubuntu.sh | |
./install_ubuntu.sh | |
git config --global http.postBuffer 524288000 | |
python -c "import tools.menuconfig; tools.menuconfig.touch_env()" | |
echo "RTT_ROOT=${{ github.workspace }}" >> $GITHUB_ENV | |
echo "RTT_CC=gcc" >> $GITHUB_ENV | |
- name: Install Arm ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-arm' && success() }} | |
shell: bash | |
run: | | |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.3/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 | |
sudo tar xjf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -C /opt | |
/opt/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-gcc --version | |
echo "RTT_EXEC_PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major/bin" >> $GITHUB_ENV | |
- name: Install LLVM-Arm ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'llvm-arm' && success() }} | |
shell: bash | |
run: | | |
wget -q https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-16.0.0/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz | |
sudo tar zxf LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz -C /opt | |
sudo apt-get -qq install libncurses5 libncurses5-dev libncursesw5-dev | |
/opt/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin/clang --version | |
echo "RTT_CC=llvm-arm" >> $GITHUB_ENV | |
echo "RTT_EXEC_PATH=/opt/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin" >> $GITHUB_ENV | |
- name: Install AArch64 ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-aarch64' && success() }} | |
shell: bash | |
run: | | |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.6/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz | |
sudo tar -xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf.tar.xz -C /opt | |
/opt/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/aarch64-none-elf-gcc --version | |
echo "RTT_EXEC_PATH=/opt/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin" >> $GITHUB_ENV | |
- name: Install Mips ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-mips' && success() }} | |
shell: bash | |
run: | | |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.1/mips-2016.05-7-mips-sde-elf-i686-pc-linux-gnu.tar.bz2 | |
sudo tar xjf mips-2016.05-7-mips-sde-elf-i686-pc-linux-gnu.tar.bz2 -C /opt | |
/opt/mips-2016.05/bin/mips-sde-elf-gcc --version | |
echo "RTT_EXEC_PATH=/opt/mips-2016.05/bin" >> $GITHUB_ENV | |
- name: Install Riscv64-unknown-elf ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-riscv64-unknown-elf' && success() }} | |
run: | | |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.4/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz | |
sudo tar zxf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz -C /opt | |
/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin/riscv64-unknown-elf-gcc --version | |
echo "RTT_EXEC_PATH=/opt/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_ENV | |
- name: Install Riscv-none-embed ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-riscv-none-embed' && success() }} | |
run: | | |
wget -q https://github.com/RT-Thread/toolchains-ci/releases/download/v1.5/xpack-riscv-none-embed-gcc-8.3.0-2.3-linux-x64.tar.gz | |
sudo tar zxf xpack-riscv-none-embed-gcc-8.3.0-2.3-linux-x64.tar.gz -C /opt | |
/opt/xpack-riscv-none-embed-gcc-8.3.0-2.3/bin/riscv-none-embed-gcc --version | |
echo "RTT_EXEC_PATH=/opt/xpack-riscv-none-embed-gcc-8.3.0-2.3/bin" >> $GITHUB_ENV | |
- name: Install riscv32-esp-elf ToolChains | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-riscv32-esp32' && success() }} | |
run: | | |
wget -q https://github.com/espressif/crosstool-NG/releases/download/esp-2022r1-RC1/riscv32-esp-elf-gcc11_2_0-esp-2022r1-RC1-linux-amd64.tar.xz | |
sudo tar xf riscv32-esp-elf-gcc11_2_0-esp-2022r1-RC1-linux-amd64.tar.xz -C /opt | |
/opt/riscv32-esp-elf/bin/riscv32-esp-elf-gcc --version | |
pip3 install esptool | |
echo "RTT_EXEC_PATH=/opt/riscv32-esp-elf/bin" >> $GITHUB_ENV | |
- name: Install Simulator Tools | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'gcc' && success() }} | |
run: | | |
sudo apt-get -qq install libsdl2-dev | |
- name: Install i386-unknown-elf Tools | |
if: ${{ matrix.legs.RTT_TOOL_CHAIN == 'sourcery-i386-unknown-elf' && success() }} | |
run: | | |
wget -q https://github.com/zhkag/toolchains/releases/download/i386-unknown/i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2 | |
sudo tar -jxvf i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt | |
/opt/i386-unknown-elf_for_x86_64-pc-linux-gnu/bin/i386-unknown-elf-gcc --version | |
echo "RTT_EXEC_PATH=/opt/i386-unknown-elf_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV | |
- name: Bsp Scons Compile | |
if: ${{ success() }} | |
shell: bash | |
env: | |
RTT_BSP: ${{ matrix.legs.RTT_BSP }} | |
RTT_TOOL_CHAIN: ${{ matrix.legs.RTT_TOOL_CHAIN }} | |
SRTT_BSP: ${{ join(matrix.legs.SUB_RTT_BSP, ',') }} | |
run: | | |
source ~/.env/env.sh | |
failed=0 | |
count=0 | |
for bsp in $(echo $SRTT_BSP | tr ',' '\n'); do | |
count=$((count+1)) | |
echo "::group::Compiling BSP: ==$count=== $bsp ====" | |
echo bsp/$bsp | |
ls bsp/$bsp/Kconfig && scons -C bsp/$bsp --pyconfig-silent | |
pushd bsp/$bsp && pkgs --update && popd | |
scons -C bsp/$bsp -j$(nproc) --debug=time | tee output.log || \ | |
{ total_time=$(grep "Total command execution time" output.log | awk '{print $5}'); \ | |
failed=$((failed+1)) ; echo "::endgroup::" ; echo "::error::build $bsp failed" ; \ | |
echo "- ❌ build $bsp failed in $total_time seconds " >> $GITHUB_STEP_SUMMARY ; } && \ | |
{ total_time=$(grep "Total command execution time" output.log | awk '{print $5}'); \ | |
echo "- ✅ build $bsp success in $total_time seconds " >> $GITHUB_STEP_SUMMARY ; echo "::endgroup::" ; } | |
done | |
exit $failed |