mirror of
https://github.com/micropython/micropython.git
synced 2026-01-07 20:50:14 +01:00
Some checks failed
JavaScript code lint and formatting with Biome / eslint (push) Has been cancelled
Check code formatting / code-formatting (push) Has been cancelled
Check spelling with codespell / codespell (push) Has been cancelled
Build docs / build (push) Has been cancelled
Check examples / embedding (push) Has been cancelled
Package mpremote / build (push) Has been cancelled
.mpy file format and tools / test (push) Has been cancelled
Build ports metadata / build (push) Has been cancelled
alif port / build_alif (alif_ae3_build) (push) Has been cancelled
cc3200 port / build (push) Has been cancelled
esp32 port / build_idf (esp32_build_c2_c5_c6) (push) Has been cancelled
esp32 port / build_idf (esp32_build_cmod_spiram_s2) (push) Has been cancelled
esp32 port / build_idf (esp32_build_p4) (push) Has been cancelled
esp32 port / build_idf (esp32_build_s3_c3) (push) Has been cancelled
esp8266 port / build (push) Has been cancelled
mimxrt port / build (push) Has been cancelled
nrf port / build (push) Has been cancelled
powerpc port / build (push) Has been cancelled
qemu port / build_and_test_arm (bigendian) (push) Has been cancelled
qemu port / build_and_test_arm (sabrelite) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_hardfp) (push) Has been cancelled
qemu port / build_and_test_arm (thumb_softfp) (push) Has been cancelled
qemu port / build_and_test_rv32 (push) Has been cancelled
qemu port / build_and_test_rv64 (push) Has been cancelled
renesas-ra port / build_renesas_ra_board (push) Has been cancelled
rp2 port / build (push) Has been cancelled
samd port / build (push) Has been cancelled
stm32 port / build_stm32 (stm32_misc_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_nucleo_build) (push) Has been cancelled
stm32 port / build_stm32 (stm32_pyb_build) (push) Has been cancelled
unix port / minimal (push) Has been cancelled
unix port / reproducible (push) Has been cancelled
unix port / standard (push) Has been cancelled
unix port / standard_v2 (push) Has been cancelled
unix port / coverage (push) Has been cancelled
unix port / coverage_32bit (push) Has been cancelled
unix port / nanbox (push) Has been cancelled
unix port / longlong (push) Has been cancelled
unix port / float (push) Has been cancelled
unix port / gil_enabled (push) Has been cancelled
unix port / stackless_clang (push) Has been cancelled
unix port / float_clang (push) Has been cancelled
unix port / settrace_stackless (push) Has been cancelled
unix port / repr_b (push) Has been cancelled
unix port / macos (push) Has been cancelled
unix port / qemu_mips (push) Has been cancelled
unix port / qemu_arm (push) Has been cancelled
unix port / qemu_riscv64 (push) Has been cancelled
unix port / sanitize_address (push) Has been cancelled
unix port / sanitize_undefined (push) Has been cancelled
webassembly port / build (push) Has been cancelled
windows port / build-vs (Debug, true, x64, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Debug, true, x86, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Debug, x64, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Debug, x86, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, true, x64, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, true, x64, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, true, x64, standard, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, true, x64, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, true, x86, dev, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, true, x86, dev, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, true, x86, standard, 2017, [15, 16)) (push) Has been cancelled
windows port / build-vs (Release, true, x86, standard, 2019, [16, 17)) (push) Has been cancelled
windows port / build-vs (Release, x64, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x64, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, dev, 2022, [17, 18)) (push) Has been cancelled
windows port / build-vs (Release, x86, standard, 2022, [17, 18)) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, dev) (push) Has been cancelled
windows port / build-mingw (i686, mingw32, standard) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, dev) (push) Has been cancelled
windows port / build-mingw (x86_64, mingw64, standard) (push) Has been cancelled
windows port / cross-build-on-linux (push) Has been cancelled
zephyr port / build (push) Has been cancelled
Python code lint and formatting with ruff / ruff (push) Has been cancelled
This commit forces the installation of CPython 3.11 instead of CPython 3.12 in the OS image for Unix/RV64 CI jobs. CPython 3.12 is not compatible with settrace tests, but it is the CPython version that is installed by default in "ubuntu-latest" (which is Ubuntu 24.04 LTS right now). Updating the base image for the RV64 tests also disabled settrace tests to work around its incompatibility, however turns out there is a way to force CI to set up a base OS image with an arbitrary CPython version. Now the RV64 CI jobs are now going to be executed using CPython 3.11, and thus the settrace tests can be removed from the ignore list. Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
355 lines
11 KiB
YAML
355 lines
11 KiB
YAML
name: unix port
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/*.yml'
|
|
- 'tools/**'
|
|
- 'py/**'
|
|
- 'extmod/**'
|
|
- 'shared/**'
|
|
- 'lib/**'
|
|
- 'examples/**'
|
|
- 'mpy-cross/**'
|
|
- 'ports/unix/**'
|
|
- 'tests/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
minimal:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Build
|
|
run: tools/ci.sh unix_minimal_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh 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@v6
|
|
- name: Build with reproducible date
|
|
run: tools/ci.sh unix_minimal_build
|
|
env:
|
|
SOURCE_DATE_EPOCH: 1234567890
|
|
- name: Check reproducible build date
|
|
run: echo | ports/unix/build-minimal/micropython -i | grep 'on 2009-02-13;'
|
|
|
|
standard:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Build
|
|
run: tools/ci.sh unix_standard_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_standard_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
standard_v2:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Build
|
|
run: tools/ci.sh unix_standard_v2_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_standard_v2_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_coverage_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_coverage_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_coverage_run_tests
|
|
- name: Test merging .mpy files
|
|
run: tools/ci.sh unix_coverage_run_mpy_merge_tests
|
|
- name: Build native mpy modules
|
|
run: tools/ci.sh native_mpy_modules_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: tools/ci.sh unix_coverage_run_native_mpy_tests
|
|
- name: Run gcov coverage analysis
|
|
run: |
|
|
(cd ports/unix && gcov -o build-coverage/py ../../py/*.c || true)
|
|
(cd ports/unix && gcov -o build-coverage/extmod ../../extmod/*.c || true)
|
|
- name: Upload coverage to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
fail_ci_if_error: true
|
|
verbose: true
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
coverage_32bit:
|
|
runs-on: ubuntu-22.04 # use 22.04 to get libffi-dev:i386
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_32bit_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_coverage_32bit_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_coverage_32bit_run_tests
|
|
- name: Build native mpy modules
|
|
run: tools/ci.sh native_mpy_modules_32bit_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: tools/ci.sh unix_coverage_32bit_run_native_mpy_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
nanbox:
|
|
runs-on: ubuntu-22.04 # use 22.04 to get libffi-dev:i386
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_32bit_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_nanbox_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_nanbox_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
longlong:
|
|
runs-on: ubuntu-22.04 # use 22.04 to get libffi-dev:i386
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_32bit_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_longlong_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_longlong_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
float:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Build
|
|
run: tools/ci.sh unix_float_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_float_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
gil_enabled:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Build
|
|
run: tools/ci.sh unix_gil_enabled_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_gil_enabled_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
stackless_clang:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_clang_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_stackless_clang_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_stackless_clang_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
float_clang:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_clang_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_float_clang_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_float_clang_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
settrace_stackless:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Build
|
|
run: tools/ci.sh unix_settrace_stackless_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_settrace_stackless_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
repr_b:
|
|
runs-on: ubuntu-22.04 # use 22.04 to get libffi-dev:i386
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_32bit_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_repr_b_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_repr_b_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
macos:
|
|
runs-on: macos-26
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.8'
|
|
- name: Build
|
|
run: tools/ci.sh unix_macos_build
|
|
- name: Run tests
|
|
run: tools/ci.sh 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@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_qemu_mips_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_qemu_mips_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_qemu_mips_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
qemu_arm:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_qemu_arm_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_qemu_arm_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_qemu_arm_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
qemu_riscv64:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_qemu_riscv64_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_qemu_riscv64_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_qemu_riscv64_run_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
sanitize_address:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_coverage_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_sanitize_address_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_sanitize_address_run_tests
|
|
- name: Test merging .mpy files
|
|
run: tools/ci.sh unix_coverage_run_mpy_merge_tests
|
|
- name: Build native mpy modules
|
|
run: tools/ci.sh native_mpy_modules_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: tools/ci.sh unix_coverage_run_native_mpy_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|
|
|
|
sanitize_undefined:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-python@v6
|
|
# Python 3.12 is the default for ubuntu-24.04, but that has compatibility issues with settrace tests.
|
|
# Can remove this step when ubuntu-latest uses a more recent Python 3.x as the default.
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install packages
|
|
run: tools/ci.sh unix_coverage_setup
|
|
- name: Build
|
|
run: tools/ci.sh unix_sanitize_undefined_build
|
|
- name: Run main test suite
|
|
run: tools/ci.sh unix_sanitize_undefined_run_tests
|
|
- name: Test merging .mpy files
|
|
run: tools/ci.sh unix_coverage_run_mpy_merge_tests
|
|
- name: Build native mpy modules
|
|
run: tools/ci.sh native_mpy_modules_build
|
|
- name: Test importing .mpy generated by mpy_ld.py
|
|
run: tools/ci.sh unix_coverage_run_native_mpy_tests
|
|
- name: Print failures
|
|
if: failure()
|
|
run: tests/run-tests.py --print-failures
|