diff options
| author | Alessandro Gatti <a.gatti@frob.it> | 2024-07-24 02:29:52 +0200 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-07-25 16:45:04 +1000 |
| commit | 17f254df3589ce4a127ad4575ed2c031d5ab81b3 (patch) | |
| tree | 5885fb6cd2a2fbe3093227d39aa11dac0f7d5e8c | |
| parent | 1f907a2f5cc912744442a1cdc3b08a19abccc71b (diff) | |
github/workflows: Add RISC-V 64 bits Unix port to CI.
Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
| -rw-r--r-- | .github/workflows/ports_unix.yml | 14 | ||||
| -rwxr-xr-x | tools/ci.sh | 27 |
2 files changed, 41 insertions, 0 deletions
diff --git a/.github/workflows/ports_unix.yml b/.github/workflows/ports_unix.yml index c83f67db8..1707fdc9f 100644 --- a/.github/workflows/ports_unix.yml +++ b/.github/workflows/ports_unix.yml @@ -235,3 +235,17 @@ jobs: - name: Print failures if: failure() run: tests/run-tests.py --print-failures + + qemu_riscv64: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install packages + run: source tools/ci.sh && ci_unix_qemu_riscv64_setup + - name: Build + run: source tools/ci.sh && ci_unix_qemu_riscv64_build + - name: Run main test suite + run: source tools/ci.sh && ci_unix_qemu_riscv64_run_tests + - name: Print failures + if: failure() + run: tests/run-tests.py --print-failures diff --git a/tools/ci.sh b/tools/ci.sh index 53fcc8b5a..b0a1022c3 100755 --- a/tools/ci.sh +++ b/tools/ci.sh @@ -427,6 +427,11 @@ CI_UNIX_OPTS_QEMU_ARM=( MICROPY_STANDALONE=1 ) +CI_UNIX_OPTS_QEMU_RISCV64=( + CROSS_COMPILE=riscv64-linux-gnu- + VARIANT=coverage +) + function ci_unix_build_helper { make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C ports/unix "$@" submodules @@ -692,6 +697,28 @@ function ci_unix_qemu_arm_run_tests { (cd tests && MICROPY_MICROPYTHON=../ports/unix/build-coverage/micropython ./run-tests.py --exclude 'vfs_posix.*\.py') } +function ci_unix_qemu_riscv64_setup { + . /etc/os-release + for repository in "${VERSION_CODENAME}" "${VERSION_CODENAME}-updates" "${VERSION_CODENAME}-security" + do + sudo add-apt-repository -y -n "deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports ${repository} main" + done + sudo apt-get update + sudo dpkg --add-architecture riscv64 + sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu libffi-dev:riscv64 + sudo apt-get install qemu-user + qemu-riscv64 --version +} + +function ci_unix_qemu_riscv64_build { + ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_RISCV64[@]}" +} + +function ci_unix_qemu_riscv64_run_tests { + file ./ports/unix/build-coverage/micropython + (cd tests && MICROPY_MICROPYTHON=../ports/unix/build-coverage/micropython ./run-tests.py) +} + ######################################################################################## # ports/windows |
