From ec9dc4912456b2b09c38506a08b86e52bed3493b Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:50:55 +0100 Subject: [PATCH 1/6] Simplify CI workflow graph --- .github/workflows/ci.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8823c7ca2..2ce3022b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,7 @@ jobs: cache-pixi-lock: runs-on: ubuntu-latest + needs: [should-skip-ci] outputs: cache-key: ${{ steps.pixi-lock.outputs.cache-key }} pixi-version: ${{ steps.pixi-lock.outputs.pixi-version }} @@ -59,8 +60,7 @@ jobs: unit-test: name: "Unit tests: ${{ matrix.os }} | pixi run -e ${{ matrix.pixi-environment }} tests" runs-on: ${{ matrix.os }}-latest - needs: [should-skip-ci, cache-pixi-lock] - if: needs.should-skip-ci.outputs.value == 'false' + needs: [cache-pixi-lock] env: COVERAGE_REPORT: "${{ matrix.os }}_${{ matrix.pixi-environment }}_unit_test_report.html" strategy: @@ -122,9 +122,8 @@ jobs: integration-test: name: "Integration: ${{ matrix.os }} | pixi run -e ${{ matrix.pixi-environment }} tests-notebooks" runs-on: ${{ matrix.os }}-latest - needs: [should-skip-ci, cache-pixi-lock] + needs: [cache-pixi-lock] # TODO v4: Re-enable the workflow once development has stabilized and we want to run integration tests again - # needs.should-skip-ci.outputs.value == 'false' if: false env: COVERAGE_REPORT: "${{ matrix.os }}_${{ matrix.pixi-environment }}_integration_test_report.html" @@ -177,9 +176,8 @@ jobs: typechecking: name: "TypeChecking: pixi run typing" runs-on: ubuntu-latest - needs: [should-skip-ci, cache-pixi-lock] + needs: [cache-pixi-lock] # TODO v4: Enable typechecking again - # needs.should-skip-ci.outputs.value == 'false' if: false steps: - name: Checkout From 8c9fefc756911b0b617e87aba358c0c16148e2ab Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:57:03 +0100 Subject: [PATCH 2/6] Update skip CI --- .github/workflows/ci.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ce3022b0..5e4d54aca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,8 +26,6 @@ jobs: if: | github.repository == 'Parcels-code/Parcels' && (github.event_name == 'push' || github.event_name == 'pull_request') - outputs: - value: ${{ steps.set-output.outputs.skip-ci }} steps: - uses: actions/checkout@v5 with: @@ -36,14 +34,11 @@ jobs: id: check-skip with: keyword: "[skip-ci]" - - name: Set skip-ci output - id: set-output + - name: Fail if skip-ci + if: steps.check-skip.outputs.trigger-found == 'true' || contains(github.event.pull_request.labels.*.name, 'skip-ci') run: | - echo 'steps.check-skip.outputs.trigger-found=${{steps.check-skip.outputs.trigger-found}}' - echo "github.event.pull_request.labels.*.name=${{toJson(github.event.pull_request.labels.*.name)}}" - SKIP_CI=${{ steps.check-skip.outputs.trigger-found == 'true' || contains(github.event.pull_request.labels.*.name, 'skip-ci') }} - echo "skip-ci=${SKIP_CI}" - echo "skip-ci=${SKIP_CI}" >> $GITHUB_OUTPUT + echo "Skipping CI due to [skip-ci] keyword or skip-ci label" + exit 1 cache-pixi-lock: runs-on: ubuntu-latest From 059eb9c5de42b92b602f5c731a418f5cd8b81f15 Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:58:10 +0100 Subject: [PATCH 3/6] Update job name --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e4d54aca..2eab69d21 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,8 +20,8 @@ env: PIXI_VERSION: "v0.63.0" jobs: - should-skip-ci: - name: should skip ci + should-run-ci: + name: should run ci runs-on: ubuntu-latest if: | github.repository == 'Parcels-code/Parcels' @@ -34,7 +34,7 @@ jobs: id: check-skip with: keyword: "[skip-ci]" - - name: Fail if skip-ci + - name: Decide if we skip CI if: steps.check-skip.outputs.trigger-found == 'true' || contains(github.event.pull_request.labels.*.name, 'skip-ci') run: | echo "Skipping CI due to [skip-ci] keyword or skip-ci label" @@ -42,7 +42,7 @@ jobs: cache-pixi-lock: runs-on: ubuntu-latest - needs: [should-skip-ci] + needs: [should-run-ci] outputs: cache-key: ${{ steps.pixi-lock.outputs.cache-key }} pixi-version: ${{ steps.pixi-lock.outputs.pixi-version }} From 9a40dcbfd8f2c0ca745f5248b5bbd89b6aca78a7 Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:58:38 +0100 Subject: [PATCH 4/6] Update runners --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2eab69d21..2ea35528e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ env: jobs: should-run-ci: name: should run ci - runs-on: ubuntu-latest + runs-on: ubuntu-slim if: | github.repository == 'Parcels-code/Parcels' && (github.event_name == 'push' || github.event_name == 'pull_request') @@ -41,7 +41,7 @@ jobs: exit 1 cache-pixi-lock: - runs-on: ubuntu-latest + runs-on: ubuntu-slim needs: [should-run-ci] outputs: cache-key: ${{ steps.pixi-lock.outputs.cache-key }} From 14d49351b758aba0192de079c1cee96855b7506e Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 10:00:14 +0100 Subject: [PATCH 5/6] Upload Pixi lock as artifact --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ea35528e..922a800b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,6 +52,11 @@ jobs: id: pixi-lock with: pixi-version: ${{env.PIXI_VERSION}} + - uses: actions/upload-artifact@v6 + with: + name: pixi-lock + path: pixi.lock + unit-test: name: "Unit tests: ${{ matrix.os }} | pixi run -e ${{ matrix.pixi-environment }} tests" runs-on: ${{ matrix.os }}-latest From e2837b799031fcaea3be3bc402f5e5051d7cf671 Mon Sep 17 00:00:00 2001 From: Vecko <36369090+VeckoTheGecko@users.noreply.github.com> Date: Wed, 21 Jan 2026 10:04:39 +0100 Subject: [PATCH 6/6] Update message --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 922a800b4..f0a51529a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: - name: Decide if we skip CI if: steps.check-skip.outputs.trigger-found == 'true' || contains(github.event.pull_request.labels.*.name, 'skip-ci') run: | - echo "Skipping CI due to [skip-ci] keyword or skip-ci label" + echo "Skipping CI." exit 1 cache-pixi-lock: