mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-08-17 23:49:06 +08:00
CI: MemBrowse integration
This commit is contained in:
committed by
Rbb666
parent
6fc3e18912
commit
b594a0887f
@@ -0,0 +1,183 @@
|
||||
[
|
||||
{
|
||||
"target_name": "stm32f407-rt-spark",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/stm32/stm32f407-rt-spark",
|
||||
"elf": "bsp/stm32/stm32f407-rt-spark/rt-thread.elf",
|
||||
"ld": "bsp/stm32/stm32f407-rt-spark/board/linker_scripts/link.lds",
|
||||
"map_file": "bsp/stm32/stm32f407-rt-spark/rt-thread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "stm32l475-atk-pandora-llvm",
|
||||
"toolchain": "llvm-arm",
|
||||
"bsp_path": "bsp/stm32/stm32l475-atk-pandora",
|
||||
"rtt_cc": "llvm-arm",
|
||||
"elf": "bsp/stm32/stm32l475-atk-pandora/rt-thread.elf",
|
||||
"ld": "bsp/stm32/stm32l475-atk-pandora/board/linker_scripts/link.lds",
|
||||
"map_file": "bsp/stm32/stm32l475-atk-pandora/rt-thread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "raspberry-pico-rp2040",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/raspberry-pico/RP2040",
|
||||
"elf": "bsp/raspberry-pico/RP2040/rtthread-pico.elf",
|
||||
"ld": "bsp/raspberry-pico/RP2040/link.ld",
|
||||
"map_file": "bsp/raspberry-pico/RP2040/rt-thread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "at32f415-start",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/at32/at32f415-start",
|
||||
"elf": "bsp/at32/at32f415-start/rtthread.elf",
|
||||
"ld": "bsp/at32/at32f415-start/board/linker_scripts/link.lds",
|
||||
"map_file": "bsp/at32/at32f415-start/rt-thread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "gd32105r-start",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/gd32/arm/gd32105r-start",
|
||||
"elf": "bsp/gd32/arm/gd32105r-start/rtthread.elf",
|
||||
"ld": "bsp/gd32/arm/gd32105r-start/board/linker_scripts/link.ld",
|
||||
"map_file": "bsp/gd32/arm/gd32105r-start/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "hc32f334",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/hc32/ev_hc32f334_lqfp64",
|
||||
"elf": "bsp/hc32/ev_hc32f334_lqfp64/rtthread.elf",
|
||||
"ld": "bsp/hc32/ev_hc32f334_lqfp64/board/linker_scripts/link.ld",
|
||||
"map_file": "bsp/hc32/ev_hc32f334_lqfp64/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "nxp-lpc1114",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/nxp/lpc/lpc1114",
|
||||
"elf": "bsp/nxp/lpc/lpc1114/rtthread-lpc1114.elf",
|
||||
"ld": "bsp/nxp/lpc/lpc1114/link.lds",
|
||||
"map_file": "bsp/nxp/lpc/lpc1114/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "nordic-nrf51822",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/nrf5x/nrf51822",
|
||||
"elf": "bsp/nrf5x/nrf51822/rt-thread.elf",
|
||||
"ld": "bsp/nrf5x/nrf51822/board/linker_scripts/link.lds",
|
||||
"map_file": "bsp/nrf5x/nrf51822/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "nuvoton-m487",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/nuvoton/numaker-iot-m487",
|
||||
"elf": "bsp/nuvoton/numaker-iot-m487/rtthread.elf",
|
||||
"ld": "bsp/nuvoton/numaker-iot-m487/linking_scripts/m480_link.ld",
|
||||
"map_file": "bsp/nuvoton/numaker-iot-m487/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "infineon-psoc6",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/Infineon/psoc6-cy8ckit-062s4",
|
||||
"elf": "bsp/Infineon/psoc6-cy8ckit-062s4/rt-thread.elf",
|
||||
"ld": "bsp/Infineon/psoc6-cy8ckit-062s4/board/linker_scripts/link.ld",
|
||||
"map_file": "bsp/Infineon/psoc6-cy8ckit-062s4/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "renesas-ra2l1",
|
||||
"toolchain": "arm-none-eabi",
|
||||
"bsp_path": "bsp/renesas/ra2l1-cpk",
|
||||
"elf": "bsp/renesas/ra2l1-cpk/rtthread.elf",
|
||||
"ld": "bsp/renesas/ra2l1-cpk/script/fsp.ld",
|
||||
"map_file": "bsp/renesas/ra2l1-cpk/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "qemu-virt64-aarch64",
|
||||
"toolchain": "aarch64-none-elf",
|
||||
"bsp_path": "bsp/qemu-virt64-aarch64",
|
||||
"elf": "bsp/qemu-virt64-aarch64/rtthread.elf",
|
||||
"ld": "libcpu/aarch64/link.lds",
|
||||
"map_file": "bsp/qemu-virt64-aarch64/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "wch-ch32v208w-r0",
|
||||
"toolchain": "riscv-none-embed",
|
||||
"bsp_path": "bsp/wch/risc-v/ch32v208w-r0",
|
||||
"elf": "bsp/wch/risc-v/ch32v208w-r0/rtthread.elf",
|
||||
"ld": "bsp/wch/risc-v/ch32v208w-r0/board/linker_scripts/link.lds",
|
||||
"map_file": "bsp/wch/risc-v/ch32v208w-r0/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "hpmicro-hpm5301evklite",
|
||||
"toolchain": "riscv32-unknown-elf-multilib",
|
||||
"bsp_path": "bsp/hpmicro/hpm5301evklite",
|
||||
"elf": "bsp/hpmicro/hpm5301evklite/rtthread.elf",
|
||||
"ld": "bsp/hpmicro/hpm5301evklite/board/linker_scripts/gcc/flash_rtt.ld",
|
||||
"map_file": "",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "xuantie-e901plus",
|
||||
"toolchain": "xuantie-elf-newlib",
|
||||
"bsp_path": "bsp/xuantie/smartl/e901plus",
|
||||
"elf": "bsp/xuantie/smartl/e901plus/rtthread.elf",
|
||||
"ld": "bsp/xuantie/libraries/xuantie_libraries/chip_riscv_dummy/gcc_flash_smartl_lite.ld",
|
||||
"map_file": "bsp/xuantie/smartl/e901plus/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "esp32-c3",
|
||||
"toolchain": "riscv32-esp-elf",
|
||||
"bsp_path": "bsp/ESP/ESP32_C3",
|
||||
"elf": "bsp/ESP/ESP32_C3/rtthread.elf",
|
||||
"ld": "bsp/ESP/ESP32_C3/idf_port/ld/memory.ld bsp/ESP/ESP32_C3/idf_port/ld/sections.ld",
|
||||
"map_file": "bsp/ESP/ESP32_C3/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "k230",
|
||||
"toolchain": "riscv64-linux-musl-k230",
|
||||
"bsp_path": "bsp/k230",
|
||||
"elf": "bsp/k230/rtthread.elf",
|
||||
"ld": "bsp/k230/link.lds.generated",
|
||||
"map_file": "bsp/k230/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "loongson-ls1cdev",
|
||||
"toolchain": "mips-sde-elf",
|
||||
"bsp_path": "bsp/loongson/ls1cdev",
|
||||
"elf": "bsp/loongson/ls1cdev/rtthread.elf",
|
||||
"ld": "bsp/loongson/ls1cdev/ls1c_ram.lds",
|
||||
"map_file": "bsp/loongson/ls1cdev/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "x86",
|
||||
"toolchain": "i386-unknown-elf",
|
||||
"bsp_path": "bsp/x86",
|
||||
"elf": "bsp/x86/rtthread.elf",
|
||||
"ld": "bsp/x86/x86_ram.lds",
|
||||
"map_file": "bsp/x86/rtthread.map",
|
||||
"linker_vars": ""
|
||||
},
|
||||
{
|
||||
"target_name": "simulator",
|
||||
"toolchain": "gcc-host",
|
||||
"bsp_path": "bsp/simulator",
|
||||
"elf": "bsp/simulator/rtthread",
|
||||
"ld": "bsp/simulator/gcc_elf64.ld",
|
||||
"map_file": "bsp/simulator/rtthread-linux.map",
|
||||
"linker_vars": ""
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,31 @@
|
||||
name: MemBrowse PR Comment
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: [MemBrowse Memory Report]
|
||||
types:
|
||||
- completed
|
||||
|
||||
jobs:
|
||||
comment:
|
||||
runs-on: ubuntu-22.04
|
||||
if: >
|
||||
github.event.workflow_run.event == 'pull_request' &&
|
||||
github.event.workflow_run.conclusion != 'cancelled' &&
|
||||
github.event.workflow_run.conclusion != 'skipped'
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Post combined PR comment
|
||||
if: ${{ env.MEMBROWSE_API_KEY != '' }}
|
||||
uses: membrowse/membrowse-action/comment-action@v1
|
||||
with:
|
||||
api_key: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
commit: ${{ github.event.workflow_run.head_sha }}
|
||||
env:
|
||||
MEMBROWSE_API_KEY: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -0,0 +1,139 @@
|
||||
name: Onboard to MemBrowse
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
num_commits:
|
||||
description: 'Number of commits to process'
|
||||
required: true
|
||||
default: '100'
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
load-targets:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Load target matrix
|
||||
id: set-matrix
|
||||
run: echo "matrix=$(jq -c '.' .github/membrowse-targets.json)" >> $GITHUB_OUTPUT
|
||||
|
||||
onboard:
|
||||
needs: load-targets
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include: ${{ fromJson(needs.load-targets.outputs.matrix) }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install env tool and Python build deps
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y -qq python3 python3-pip wget xz-utils build-essential
|
||||
wget -qO install_ubuntu.sh https://raw.githubusercontent.com/RT-Thread/env/master/install_ubuntu.sh
|
||||
bash install_ubuntu.sh
|
||||
|
||||
- name: Install toolchain
|
||||
run: |
|
||||
set -e
|
||||
case "${{ matrix.toolchain }}" in
|
||||
arm-none-eabi)
|
||||
sudo apt-get install -y -qq gcc-arm-none-eabi
|
||||
echo "TOOLCHAIN_PATH=/usr/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
aarch64-none-elf)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
llvm-arm)
|
||||
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 install -y -qq libncurses5 libncurses5-dev libncursesw5-dev
|
||||
echo "TOOLCHAIN_PATH=/opt/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
mips-sde-elf)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/mips-2016.05/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
i386-unknown-elf)
|
||||
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 -jxf i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/i386-unknown-elf_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv-none-embed)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/xpack-riscv-none-embed-gcc-8.3.0-2.3/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv32-unknown-elf-multilib)
|
||||
wget -q https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
|
||||
sudo tar zxf riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv32-unknown-elf-newlib-multilib/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
xuantie-elf-newlib)
|
||||
wget -q https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1751370399722/Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0-20250627.tar.gz
|
||||
sudo tar -zxf Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0-20250627.tar.gz -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv32-esp-elf)
|
||||
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
|
||||
pip3 install --user esptool
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv32-esp-elf/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv64-linux-musl-k230)
|
||||
wget -q https://download.rt-thread.org/rt-smart/riscv64/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_251248.tar.bz2
|
||||
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_251248.tar.bz2 -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
gcc-host)
|
||||
sudo apt-get install -y -qq libsdl2-dev
|
||||
echo "TOOLCHAIN_PATH=/usr/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
*)
|
||||
echo "Unknown toolchain: ${{ matrix.toolchain }}"; exit 1 ;;
|
||||
esac
|
||||
|
||||
- name: Run MemBrowse Onboard Action
|
||||
uses: membrowse/membrowse-action/onboard-action@v1
|
||||
with:
|
||||
target_name: ${{ matrix.target_name }}
|
||||
num_commits: ${{ github.event.inputs.num_commits }}
|
||||
build_script: |
|
||||
. $HOME/.env/env.sh
|
||||
pip install -r tools/requirements.txt
|
||||
export RTT_EXEC_PATH="$TOOLCHAIN_PATH"
|
||||
export RTT_ROOT="$PWD"
|
||||
export RTT_CC="${{ matrix.rtt_cc || 'gcc' }}"
|
||||
[ -n "${{ matrix.rtt_cc_prefix }}" ] && export RTT_CC_PREFIX="${{ matrix.rtt_cc_prefix }}"
|
||||
cd "${{ matrix.bsp_path }}"
|
||||
pkgs --update --force-update
|
||||
scons --pyconfig-silent
|
||||
scons -j$(nproc)
|
||||
build_status=$?
|
||||
# The build regenerates tracked files (rtconfig.h/.config), leaving a
|
||||
# dirty work tree. In binary-search mode onboard checks out another
|
||||
# commit next, which git aborts ("local changes would be overwritten").
|
||||
# git clean only removes untracked files, so restore tracked ones here.
|
||||
# Runs unconditionally but preserves the build's exit status.
|
||||
git -C "$RTT_ROOT" checkout -- . || true
|
||||
exit $build_status
|
||||
elf: ${{ matrix.elf }}
|
||||
ld: ${{ matrix.ld }}
|
||||
map_file: ${{ matrix.map_file }}
|
||||
linker_vars: ${{ matrix.linker_vars }}
|
||||
binary_search: 'true'
|
||||
api_key: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
api_url: ${{ vars.MEMBROWSE_API_URL }}
|
||||
@@ -0,0 +1,138 @@
|
||||
name: MemBrowse Memory Report
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name == 'push' && github.sha || github.ref }}
|
||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
jobs:
|
||||
load-targets:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: Load target matrix
|
||||
id: set-matrix
|
||||
run: echo "matrix=$(jq -c '.' .github/membrowse-targets.json)" >> $GITHUB_OUTPUT
|
||||
|
||||
analyze:
|
||||
needs: load-targets
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include: ${{ fromJson(needs.load-targets.outputs.matrix) }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install env tool and Python build deps
|
||||
run: |
|
||||
sudo apt-get update -qq
|
||||
sudo apt-get install -y -qq python3 python3-pip wget xz-utils build-essential
|
||||
wget -qO install_ubuntu.sh https://raw.githubusercontent.com/RT-Thread/env/master/install_ubuntu.sh
|
||||
bash install_ubuntu.sh
|
||||
|
||||
- name: Install toolchain
|
||||
run: |
|
||||
set -e
|
||||
case "${{ matrix.toolchain }}" in
|
||||
arm-none-eabi)
|
||||
sudo apt-get install -y -qq gcc-arm-none-eabi
|
||||
echo "TOOLCHAIN_PATH=/usr/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
aarch64-none-elf)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
llvm-arm)
|
||||
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 install -y -qq libncurses5 libncurses5-dev libncursesw5-dev
|
||||
echo "TOOLCHAIN_PATH=/opt/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
mips-sde-elf)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/mips-2016.05/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
i386-unknown-elf)
|
||||
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 -jxf i386-unknown-elf_for_x86_64-pc-linux-gnu_latest.tar.bz2 -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/i386-unknown-elf_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv-none-embed)
|
||||
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
|
||||
echo "TOOLCHAIN_PATH=/opt/xpack-riscv-none-embed-gcc-8.3.0-2.3/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv32-unknown-elf-multilib)
|
||||
wget -q https://github.com/hpmicro/riscv-gnu-toolchain/releases/download/2022.05.15/riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz
|
||||
sudo tar zxf riscv32-unknown-elf-newlib-multilib_2022.05.15_linux.tar.gz -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv32-unknown-elf-newlib-multilib/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
xuantie-elf-newlib)
|
||||
wget -q https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1751370399722/Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0-20250627.tar.gz
|
||||
sudo tar -zxf Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0-20250627.tar.gz -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/Xuantie-900-gcc-elf-newlib-x86_64-V3.2.0/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv32-esp-elf)
|
||||
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
|
||||
pip3 install --user esptool
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv32-esp-elf/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
riscv64-linux-musl-k230)
|
||||
wget -q https://download.rt-thread.org/rt-smart/riscv64/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_251248.tar.bz2
|
||||
sudo tar xjf riscv64-linux-musleabi_for_x86_64-pc-linux-gnu_251248.tar.bz2 -C /opt
|
||||
echo "TOOLCHAIN_PATH=/opt/riscv64-linux-musleabi_for_x86_64-pc-linux-gnu/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
gcc-host)
|
||||
sudo apt-get install -y -qq libsdl2-dev
|
||||
echo "TOOLCHAIN_PATH=/usr/bin" >> $GITHUB_ENV
|
||||
;;
|
||||
*)
|
||||
echo "Unknown toolchain: ${{ matrix.toolchain }}"; exit 1 ;;
|
||||
esac
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
MATRIX_RTT_CC: ${{ matrix.rtt_cc }}
|
||||
MATRIX_RTT_CC_PREFIX: ${{ matrix.rtt_cc_prefix }}
|
||||
run: |
|
||||
source $HOME/.env/env.sh
|
||||
pip install -r tools/requirements.txt
|
||||
export RTT_EXEC_PATH="$TOOLCHAIN_PATH"
|
||||
export RTT_ROOT="$PWD"
|
||||
export RTT_CC="${MATRIX_RTT_CC:-gcc}"
|
||||
[ -n "$MATRIX_RTT_CC_PREFIX" ] && export RTT_CC_PREFIX="$MATRIX_RTT_CC_PREFIX"
|
||||
cd "${{ matrix.bsp_path }}"
|
||||
pkgs --update --force-update
|
||||
scons --pyconfig-silent
|
||||
scons -j$(nproc)
|
||||
|
||||
- name: Run MemBrowse analysis
|
||||
uses: membrowse/membrowse-action@v1
|
||||
with:
|
||||
target_name: ${{ matrix.target_name }}
|
||||
elf: ${{ matrix.elf }}
|
||||
ld: ${{ matrix.ld }}
|
||||
map_file: ${{ matrix.map_file }}
|
||||
linker_vars: ${{ matrix.linker_vars }}
|
||||
api_key: ${{ secrets.MEMBROWSE_API_KEY }}
|
||||
api_url: ${{ vars.MEMBROWSE_API_URL }}
|
||||
verbose: INFO
|
||||
# Uncomment to allow CI to pass even when memory budgets are exceeded
|
||||
# dont_fail_on_alerts: true
|
||||
@@ -12,6 +12,7 @@
|
||||
[](https://github.com/RT-Thread/rt-thread/pulls)
|
||||
[](https://github.com/RT-Thread/rt-thread/pulls)
|
||||
[](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml)
|
||||
[](https://membrowse.com/public/RT-Thread/rt-thread)
|
||||
<a href="https://hellogithub.com/repository/5816fc3c1e714d109631ceb377538ca9" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=5816fc3c1e714d109631ceb377538ca9&claim_uid=kVCe5FXIMGAjJfy" alt="Featured|HelloGitHub" style="width: 100px; height: 20px;" width="250" height="54" /></a>
|
||||
# RT-Thread
|
||||
|
||||
|
||||
Reference in New Issue
Block a user