tools/manifestfile: Fix KeyError when MPY_LIB_DIR not in path_vars. #1718
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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-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_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-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_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-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_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-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_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 |