github/workflows: Add workflow to build and run unix port on ARM.
Following on from ef16834887, this adds a
coverage build and running of the test suite on an ARM 32-bit Linux-based
architecture.
Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
36cb365cad
commit
b15e1ef5a6
2 changed files with 39 additions and 0 deletions
14
.github/workflows/ports_unix.yml
vendored
14
.github/workflows/ports_unix.yml
vendored
|
|
@ -200,3 +200,17 @@ jobs:
|
||||||
- name: Print failures
|
- name: Print failures
|
||||||
if: failure()
|
if: failure()
|
||||||
run: tests/run-tests.py --print-failures
|
run: tests/run-tests.py --print-failures
|
||||||
|
|
||||||
|
qemu_arm:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install packages
|
||||||
|
run: source tools/ci.sh && ci_unix_qemu_arm_setup
|
||||||
|
- name: Build
|
||||||
|
run: source tools/ci.sh && ci_unix_qemu_arm_build
|
||||||
|
- name: Run main test suite
|
||||||
|
run: source tools/ci.sh && ci_unix_qemu_arm_run_tests
|
||||||
|
- name: Print failures
|
||||||
|
if: failure()
|
||||||
|
run: tests/run-tests.py --print-failures
|
||||||
|
|
|
||||||
25
tools/ci.sh
25
tools/ci.sh
|
|
@ -300,6 +300,12 @@ CI_UNIX_OPTS_QEMU_MIPS=(
|
||||||
LDFLAGS_EXTRA="-static"
|
LDFLAGS_EXTRA="-static"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
CI_UNIX_OPTS_QEMU_ARM=(
|
||||||
|
CROSS_COMPILE=arm-linux-gnueabi-
|
||||||
|
VARIANT=coverage
|
||||||
|
MICROPY_STANDALONE=1
|
||||||
|
)
|
||||||
|
|
||||||
function ci_unix_build_helper {
|
function ci_unix_build_helper {
|
||||||
make ${MAKEOPTS} -C mpy-cross
|
make ${MAKEOPTS} -C mpy-cross
|
||||||
make ${MAKEOPTS} -C ports/unix "$@" submodules
|
make ${MAKEOPTS} -C ports/unix "$@" submodules
|
||||||
|
|
@ -506,6 +512,25 @@ function ci_unix_qemu_mips_run_tests {
|
||||||
(cd tests && MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py --exclude 'vfs_posix.py' --exclude 'ffi_(callback|float|float2).py')
|
(cd tests && MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py --exclude 'vfs_posix.py' --exclude 'ffi_(callback|float|float2).py')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ci_unix_qemu_arm_setup {
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
|
||||||
|
sudo apt-get install qemu-user
|
||||||
|
qemu-arm --version
|
||||||
|
}
|
||||||
|
|
||||||
|
function ci_unix_qemu_arm_build {
|
||||||
|
ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_ARM[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function ci_unix_qemu_arm_run_tests {
|
||||||
|
# Issues with ARM tests:
|
||||||
|
# - (i)listdir does not work, it always returns the empty list (it's an issue with the underlying C call)
|
||||||
|
export QEMU_LD_PREFIX=/usr/arm-linux-gnueabi
|
||||||
|
file ./ports/unix/micropython-coverage
|
||||||
|
(cd tests && MICROPY_MICROPYTHON=../ports/unix/micropython-coverage ./run-tests.py --exclude 'vfs_posix.py')
|
||||||
|
}
|
||||||
|
|
||||||
########################################################################################
|
########################################################################################
|
||||||
# ports/windows
|
# ports/windows
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue