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 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@v1 with: fail_ci_if_error: true verbose: true - 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 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