summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Gatti <a.gatti@frob.it>2024-07-24 02:29:52 +0200
committerDamien George <damien@micropython.org>2024-07-25 16:45:04 +1000
commit17f254df3589ce4a127ad4575ed2c031d5ab81b3 (patch)
tree5885fb6cd2a2fbe3093227d39aa11dac0f7d5e8c
parent1f907a2f5cc912744442a1cdc3b08a19abccc71b (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.yml14
-rwxr-xr-xtools/ci.sh27
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