ef16834887
This adds a coverage build and running of the test suite on a MIPS 32-bit big endian architecture. It uses the feature of qemu to execute foreign code as though it were native to the system (using qemu user mode). The code compiled for MIPS will run under the qemu VM, but all syscalls made by this code go to the host (Linux) system. See related #7268 and #7273. Signed-off-by: Damien George <damien@micropython.org>
203 lines
6.1 KiB
YAML
203 lines
6.1 KiB
YAML
name: unix port
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/*.yml'
|
|
- 'tools/**'
|
|
- 'py/**'
|
|
- 'extmod/**'
|
|
- 'lib/**'
|
|
- 'examples/**'
|
|
- 'ports/unix/**'
|
|
- 'tests/**'
|
|
|
|
jobs:
|
|
minimal:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_minimal_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_minimal_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
reproducible:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build with reproducible date
|
|
run: source tools/ci.sh && ci_unix_minimal_build
|
|
env:
|
|
SOURCE_DATE_EPOCH: 1234567890
|
|
- name: Check reproducible build date
|
|
run: echo | ports/unix/micropython-minimal -i | grep 'on 2009-02-13;'
|
|
|
|
standard:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_standard_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_standard_run_tests
|
|
- name: Run performance benchmarks
|
|
run: source tools/ci.sh && ci_unix_standard_run_perfbench
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_coverage_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_coverage_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_coverage_run_tests
|
|
- name: Build native mpy modules
|
|
run: source tools/ci.sh && ci_native_mpy_modules_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: source tools/ci.sh && ci_unix_coverage_run_native_mpy_tests
|
|
- name: Run lcov coverage analysis
|
|
run: |
|
|
mkdir -p coverage
|
|
lcov --rc lcov_branch_coverage=1 --directory ports/unix/build-coverage --capture --output-file coverage/lcov.info.all
|
|
lcov --remove coverage/lcov.info.all '*/lib/*' '*/ports/unix/*' '*/utils/*' --output-file coverage/lcov.info
|
|
- name: Send to coveralls
|
|
uses: coverallsapp/github-action@master
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
coverage_32bit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_32bit_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_coverage_32bit_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_coverage_32bit_run_tests
|
|
- name: Build native mpy modules
|
|
run: source tools/ci.sh && ci_native_mpy_modules_32bit_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: source tools/ci.sh && ci_unix_coverage_32bit_run_native_mpy_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
nanbox:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_32bit_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_nanbox_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_nanbox_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
float:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_float_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_float_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
stackless_clang:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_clang_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_stackless_clang_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_stackless_clang_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
float_clang:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_clang_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_float_clang_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_float_clang_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
settrace:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_settrace_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_settrace_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
settrace_stackless:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_settrace_stackless_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_settrace_stackless_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
macos:
|
|
runs-on: macos-11.0
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v1
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_macos_build
|
|
- name: Run tests
|
|
run: source tools/ci.sh && ci_unix_macos_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
qemu_mips:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install packages
|
|
run: source tools/ci.sh && ci_unix_qemu_mips_setup
|
|
- name: Build
|
|
run: source tools/ci.sh && ci_unix_qemu_mips_build
|
|
- name: Run main test suite
|
|
run: source tools/ci.sh && ci_unix_qemu_mips_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|