CI: MemBrowse integration

This commit is contained in:
Michael Rogov Papernov
2026-06-17 15:18:49 +08:00
committed by Rbb666
parent 6fc3e18912
commit b594a0887f
5 changed files with 492 additions and 0 deletions
+183
View File
@@ -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": ""
}
]
+31
View File
@@ -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 }}
+139
View File
@@ -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 }}
+138
View File
@@ -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
+1
View File
@@ -12,6 +12,7 @@
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/RT-Thread/rt-thread.svg)](https://github.com/RT-Thread/rt-thread/pulls)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat)](https://github.com/RT-Thread/rt-thread/pulls)
[![RT-Thread BSP Static Build Check](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml/badge.svg)](https://github.com/RT-Thread/rt-thread/actions/workflows/bsp_buildings.yml)
[![MemBrowse](https://membrowse.com/badge.svg)](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="FeaturedHelloGitHub" style="width: 100px; height: 20px;" width="250" height="54" /></a>
# RT-Thread