manual_scons_dist_trigger_only_one #6
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
# | |
# Copyright (c) 2006-2023, RT-Thread Development Team | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
# | |
# Change Logs: | |
# Date Author Notes | |
# 2023-07-01 Supperthomas the first version | |
# | |
name: manual_scons_dist_trigger_only_one | |
# Controls when the action will run. Triggers 'scons --dist' to build the dist | |
on: | |
workflow_dispatch: | |
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs | |
inputs: | |
bsp_options: | |
description: 'Which bsp path Would you want dist in bsp?like stm32/stm32l496-st-nucleo ' | |
required: false | |
type: string | |
default: 'qemu-vexpress-a9' | |
bsp_tool_chain: | |
description: 'Choice tool_chain' | |
required: false | |
default: 'sourcery-arm' | |
type: choice | |
options: | |
- "sourcery-arm" | |
- "llvm-arm" | |
- "sourcery-aarch64" | |
- "sourcery-mips" | |
- "sourcery-riscv-none-embed" | |
- "sourcery-riscv64-unknown-elf" | |
- "gcc" | |
bsp_config: | |
description: 'Type a config you want mannual test in .config, like CONFIG_BSP_USING_I2C CONFIG_BSP_USING_WDT ' | |
required: false | |
type: string | |
default: 'CONFIG_BSP_USING_GPIO' | |
dist_flag: | |
description: 'True to dist all bsp, False not dist' | |
required: true | |
type: boolean | |
default: false | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: ${{ github.event.inputs.bsp_options }} | |
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 | |
sudo apt-get -qq install gcc-multilib libncurses5 libncurses5-dev libncursesw5-dev scons | |
sudo python -m pip install --upgrade pip -qq | |
pip install requests -qq | |
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: ${{ github.event.inputs.bsp_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: ${{ github.event.inputs.bsp_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 | |
/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: ${{ github.event.inputs.bsp_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: ${{ github.event.inputs.bsp_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: ${{ github.event.inputs.bsp_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: ${{ github.event.inputs.bsp_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 Simulator Tools | |
if: ${{ github.event.inputs.bsp_options == 'simulator' && success() }} | |
run: | | |
sudo apt-get -qq install libsdl2-dev | |
- name: Bsp Scons Compile | |
if: ${{ success() }} | |
shell: bash | |
env: | |
RTT_BSP: ${{ github.event.inputs.bsp_options }} | |
RTT_TOOL_CHAIN: ${{ github.event.inputs.bsp_tool_chain}} | |
run: | | |
source ~/.env/env.sh | |
echo $RTT_BSP | |
ls bsp/$RTT_BSP/Kconfig && scons -C bsp/$RTT_BSP --pyconfig-silent | |
sed -i "s/# ${{ github.event.inputs.bsp_config }} is not set/${{ github.event.inputs.bsp_config }}=y/g" bsp/$RTT_BSP/.config | |
scons -C bsp/$RTT_BSP --pyconfig-silent | |
pushd bsp/$RTT_BSP && pkgs --update && popd | |
scons -C bsp/$RTT_BSP -j$(nproc) | |
mkdir -p ${{ github.workspace }}/$RTT_BSP | |
cp -r bsp/$RTT_BSP ${{ github.workspace }}/$RTT_BSP/ | |
scons --dist -C bsp/$RTT_BSP | |
cp bsp/$RTT_BSP/dist/project.zip ${{ github.workspace }}/$RTT_BSP/ | |
ls bsp/$RTT_BSP/dist | |
pwd | |
- uses: actions/upload-artifact@v3 | |
if: ${{ github.event.inputs.dist_flag }} | |
with: | |
name: dist_file | |
path: ${{ github.workspace }}/${{ github.event.inputs.bsp_options }}/* | |