name: zephyr port on: push: pull_request: paths: - '.github/workflows/ports_zephyr.yml' - 'tools/**' - 'py/**' - 'extmod/**' - 'shared/**' - 'lib/**' - 'ports/zephyr/**' - 'tests/**' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - uses: jlumbroso/free-disk-space@main with: # Only free up a few things so this step runs quickly. android: false dotnet: true haskell: true large-packages: false docker-images: false swap-storage: false - uses: actions/checkout@v4 - id: versions name: Read Zephyr version run: source tools/ci.sh && echo "ZEPHYR=$ZEPHYR_VERSION" | tee "$GITHUB_OUTPUT" - name: Cached Zephyr Workspace id: cache_workspace uses: actions/cache@v4 with: # note that the Zephyr CI docker image is 15GB. At time of writing # GitHub caches are limited to 10GB total for a project. So we only # cache the "workspace" path: ./zephyrproject key: zephyr-workspace-${{ steps.versions.outputs.ZEPHYR }} - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: zephyr - name: Install packages run: source tools/ci.sh && ci_zephyr_setup - name: Install Zephyr if: steps.cache_workspace.outputs.cache-hit != 'true' run: source tools/ci.sh && ci_zephyr_install - name: Build run: source tools/ci.sh && ci_zephyr_build - name: Run main test suite run: source tools/ci.sh && ci_zephyr_run_tests - name: Print failures if: failure() run: tests/run-tests.py --print-failures