summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Gatti <a.gatti@frob.it>2024-05-31 14:38:52 +0200
committerDamien George <damien@micropython.org>2024-06-17 12:06:09 +1000
commit1b10cb843cd678cdf1a6112739a452eec0293fcd (patch)
tree459ebff9c5b3e46548655f2e776b4b6be5df9836
parent2d69aab7b350810322a4cba2667626949ee3d974 (diff)
github/workflows: Add qemu-riscv port to CI.
Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
-rw-r--r--.github/workflows/ports_qemu-riscv.yml33
-rwxr-xr-xtools/ci.sh24
2 files changed, 57 insertions, 0 deletions
diff --git a/.github/workflows/ports_qemu-riscv.yml b/.github/workflows/ports_qemu-riscv.yml
new file mode 100644
index 000000000..39ba06adb
--- /dev/null
+++ b/.github/workflows/ports_qemu-riscv.yml
@@ -0,0 +1,33 @@
+name: qemu-riscv port
+
+on:
+ push:
+ pull_request:
+ paths:
+ - '.github/workflows/*.yml'
+ - 'tools/**'
+ - 'py/**'
+ - 'extmod/**'
+ - 'shared/**'
+ - 'lib/**'
+ - 'drivers/**'
+ - 'ports/qemu-arm/main.c'
+ - 'ports/qemu-riscv/**'
+ - 'tests/**'
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build_and_test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Install packages
+ run: source tools/ci.sh && ci_qemu_riscv_setup
+ - name: Build and run test suite
+ run: source tools/ci.sh && ci_qemu_riscv_build
+ - name: Print failures
+ if: failure()
+ run: grep --before-context=100 --text "FAIL" ports/qemu-riscv/build/console.out
diff --git a/tools/ci.sh b/tools/ci.sh
index b0746178b..7ba4ac4e5 100755
--- a/tools/ci.sh
+++ b/tools/ci.sh
@@ -17,6 +17,11 @@ function ci_gcc_arm_setup {
arm-none-eabi-gcc --version
}
+function ci_gcc_riscv_setup {
+ sudo apt-get install gcc-riscv64-unknown-elf picolibc-riscv64-unknown-elf
+ riscv64-unknown-elf-gcc --version
+}
+
########################################################################################
# c code formatting
@@ -260,6 +265,25 @@ function ci_qemu_arm_build {
}
########################################################################################
+# ports/qemu-riscv
+
+function ci_qemu_riscv_setup {
+ ci_gcc_riscv_setup
+ sudo apt-get update
+ sudo apt-get install qemu-system
+ qemu-system-riscv32 --version
+}
+
+function ci_qemu_riscv_build {
+ make ${MAKEOPTS} -C mpy-cross
+ make ${MAKEOPTS} -C ports/qemu-riscv submodules
+ make ${MAKEOPTS} -C ports/qemu-riscv
+ make ${MAKEOPTS} -C ports/qemu-riscv clean
+ make ${MAKEOPTS} -C ports/qemu-riscv -f Makefile.test submodules
+ make ${MAKEOPTS} -C ports/qemu-riscv -f Makefile.test test
+}
+
+########################################################################################
# ports/renesas-ra
function ci_renesas_ra_setup {