ci: trigger github action on changes of tools folder #185
Workflow file for this run
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: Build SDK | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
paths: | |
- "Build/**" | |
- "application/**" | |
- "NMSIS/**" | |
- "OS/**" | |
- "SoC/**" | |
- "test/**" | |
- ".github/**" | |
- ".ci/**" | |
- "tools/**" | |
pull_request: | |
paths: | |
- "Build/**" | |
- "application/**" | |
- "NMSIS/**" | |
- "OS/**" | |
- "SoC/**" | |
- "test/**" | |
- ".github/**" | |
- ".ci/**" | |
- "tools/**" | |
jobs: | |
build: | |
name: Build SDK | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04] | |
soc: [evalsoc, gd32vf103] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Caching tools | |
uses: actions/cache@v3 | |
with: | |
path: | | |
prebuilt_tools/*.tar.bz2 | |
prebuilt_tools/*.zip | |
key: build | |
- name: Prepare Tools for Ubuntu | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get -q update | |
sudo apt install -yq python3 python3-pip unzip libz-dev libssl-dev libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev libncursesw5-dev libncursesw5 libgmp-dev libmpfr-dev libmpc-dev | |
sudo python3 -m pip install -q --upgrade pip | |
# install to user local storage | |
# ERROR: Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. | |
pip3 install -q -r tools/scripts/requirements.txt | |
mkdir -p prebuilt_tools | |
cd prebuilt_tools | |
toolzip=nuclei_riscv_newlibc_prebuilt_linux64_nuclei-2023.07.19.tar.bz2 | |
if [ ! -e $toolzip ] ; then | |
wget -q --no-check-certificate https://nucleisys.com/upload/files/toochain/gcc/$toolzip | |
fi | |
tar -xjf $toolzip | |
toolzip=nuclei_qemu-2023.07.19-linux.zip | |
if [ ! -e $toolzip ] ; then | |
wget -q --no-check-certificate https://nucleisys.com/upload/files/toochain/qemu/$toolzip | |
fi | |
unzip -q $toolzip | |
if [ -d linux_qemu ] ; then | |
mv linux_qemu qemu | |
fi | |
echo "Check gcc and qemu version" | |
ldd ./qemu/bin/qemu-system-riscv32 | |
./qemu/bin/qemu-system-riscv32 --version | |
./gcc/bin/riscv64-unknown-elf-gcc -v | |
cd .. | |
echo "NUCLEI_TOOL_ROOT=$(pwd)/prebuilt_tools" > setup_config.sh | |
- name: Build SDK for Nuclei Eval SoC Using GCC | |
if: matrix.soc == 'evalsoc' | |
run: | | |
echo "Setup build environment" | |
source setup.sh | |
export APPCFG=tools/scripts/nsdk_cli/configs/application.json | |
export HWCFG=tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_gnu.json | |
export LOGDIR=logs/nuclei_fpga_eval_ci_gnu | |
python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run_target qemu --run | |
- name: Build SDK for Nuclei Eval SoC Using LLVM | |
if: matrix.soc == 'evalsoc' | |
run: | | |
echo "Setup build environment" | |
source setup.sh | |
export APPCFG=tools/scripts/nsdk_cli/configs/application.json | |
export HWCFG=tools/scripts/nsdk_cli/configs/nuclei_fpga_eval_ci_qemu_small_llvm.json | |
export LOGDIR=logs/nuclei_fpga_eval_ci_llvm | |
python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run_target qemu --run | |
- name: Build SDK for GD32VF103 SoC | |
if: matrix.soc == 'gd32vf103' | |
run: | | |
echo "Setup build environment" | |
source setup.sh | |
export APPCFG=tools/scripts/nsdk_cli/configs/application.json | |
export HWCFG=tools/scripts/nsdk_cli/configs/gd32vf103v_rvstar.json | |
export LOGDIR=logs/gd32vf103v_rvstar | |
python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR | |
- name: Upload Build Log for ${{ matrix.soc }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build_${{ matrix.soc }} | |
path: | | |
logs/* |