name: Run tests on: workflow_call: inputs: cp-version: required: true type: string jobs: run: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: test: [all, mpy, native, native_mpy] env: CP_VERSION: ${{ inputs.cp-version }} MICROPY_CPYTHON3: python3.8 MICROPY_MICROPYTHON: ../ports/unix/build-coverage/micropython TEST_all: TEST_mpy: --via-mpy -d basics float micropython TEST_native: --emit native TEST_native_mpy: --via-mpy --emit native -d basics float micropython steps: - name: Set up repository uses: actions/checkout@v3 with: submodules: false fetch-depth: 1 - name: Set up python uses: actions/setup-python@v4 with: python-version: 3.8 - name: Set up submodules uses: ./.github/actions/deps/submodules with: target: tests - name: Set up external if: matrix.test == 'all' uses: ./.github/actions/deps/external - name: Set up mpy-cross uses: ./.github/actions/mpy_cross with: cp-version: ${{ inputs.cp-version }} - name: Build unix port run: make -C ports/unix VARIANT=coverage -j2 - name: Run tests run: ./run-tests.py -j2 ${{ env[format('TEST_{0}', matrix.test)] }} working-directory: tests - name: Print failure info run: ./run-tests.py -j2 --print-failures if: failure() working-directory: tests - name: Build native modules if: matrix.test == 'all' run: | make -C examples/natmod/features1 make -C examples/natmod/features2 make -C examples/natmod/heapq make -C examples/natmod/random make -C examples/natmod/re - name: Test native modules if: matrix.test == 'all' run: ./run-natmodtests.py extmod/{heapq*,re*,zlib*}.py working-directory: tests