| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- 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
- prebuilt_tools/*.tar.gz
- 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
- echo "Prepare Nuclei Toolchain......"
- toolzip=nuclei_riscv_newlibc_prebuilt_linux64_2024.06.tar.bz2
- if [ ! -e $toolzip ] ; then
- echo "Download Nuclei toolchain now!"
- wget --progress=dot:giga --no-check-certificate https://www.nucleisys.com/upload/files/toochain/gcc/$toolzip
- ls -lh $toolzip
- md5sum $toolzip
- fi
- tar -xjf $toolzip
- echo "Prepare Nuclei QEMU......"
- toolzip=nuclei-qemu-2024.06-linux-x64.tar.gz
- if [ ! -e $toolzip ] ; then
- echo "Download Nuclei qemu now!"
- wget --progress=dot:giga --no-check-certificate https://www.nucleisys.com/upload/files/toochain/qemu/$toolzip
- ls -lh $toolzip
- md5sum $toolzip
- fi
- tar -xzf $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 and Run SDK for Nuclei Eval SoC
- if: matrix.soc == 'evalsoc'
- run: |
- echo "Setup build environment"
- source setup.sh
- export APPCFG=tools/scripts/nsdk_cli/configs/application.json
- for hwcfg in "nuclei_fpga_eval_ci_qemu_small_gnu" "nuclei_fpga_eval_ci_qemu_small_llvm" ; do
- export HWCFG=tools/scripts/nsdk_cli/configs/${hwcfg}.json
- export LOGDIR=logs/${hwcfg}
- echo "Build and run for ${hwcfg}"
- python3 tools/scripts/nsdk_cli/nsdk_bench.py --appcfg $APPCFG --hwcfg $HWCFG --parallel="-j" --logdir $LOGDIR --run_target qemu --run
- done
- - 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/*
|