chore(ci): use !cancelled() instead of always() for final job#906
Conversation
Combined with the workflow's `cancel-in-progress` group, `if: always()` overrides cancellation and runs the aggregator even on superseded commits. `!cancelled()` still runs on upstream success or failure but skips when the workflow is cancelled. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
Greptile SummaryReplaces Confidence Score: 5/5Safe to merge — correct, well-understood GitHub Actions best practice with no functional regressions. Single-line CI config fix with no code logic changes; the semantics of No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[New commit pushed] --> B{cancel-in-progress}
B -- "existing run active" --> C[Cancel previous workflow]
B -- "no existing run" --> D[Run all CI jobs]
C --> E{final job condition}
D --> F[All jobs complete success/failure]
F --> E
E -- "always() ❌" --> G[final runs anyway\nwastes runner + noisy annotations]
E -- "!cancelled() ✅" --> H{Was workflow cancelled?}
H -- yes --> I[final skipped]
H -- no --> J[final runs\nchecks all job results]
Reviews (1): Last reviewed commit: "chore(ci): use !cancelled() instead of a..." | Re-trigger Greptile |
### 🚀 Features - **(builtins)** add `buildifier` format and lint built-ins by [@plx](https://github.com/plx) in [#896](#896) ### 🐛 Bug Fixes - **(step)** only auto-batch when rendered command exceeds ARG_MAX by [@jdx](https://github.com/jdx) in [#901](#901) ### 📚 Documentation - thank Namespace for GitHub Actions runner support by [@jdx](https://github.com/jdx) in [#895](#895) ### 🔍 Other Changes - **(ci)** use !cancelled() instead of always() for final job by [@jdx](https://github.com/jdx) in [#906](#906) - **(docs)** remove shrill.en.dev analytics script by [@jdx](https://github.com/jdx) in [#903](#903) - remove rust-cache from release jobs by [@jdx](https://github.com/jdx) in [#893](#893) - invert CLAUDE.md/AGENTS.md so AGENTS.md is canonical by [@jdx](https://github.com/jdx) in [#905](#905) - set dev profile debug to 1 by [@jdx](https://github.com/jdx) in [#907](#907) ### 📦️ Dependency Updates - update anthropics/claude-code-action digest to fefa07e by [@renovate[bot]](https://github.com/renovate[bot]) in [#897](#897) - update jdx/mise-action digest to 1648a78 by [@renovate[bot]](https://github.com/renovate[bot]) in [#898](#898) - update apple-actions/import-codesign-certs action to v7 by [@renovate[bot]](https://github.com/renovate[bot]) in [#900](#900) - update autofix-ci/action action to v1.3.4 by [@renovate[bot]](https://github.com/renovate[bot]) in [#899](#899) - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [#908](#908) ### New Contributors - @plx made their first contribution in [#896](#896) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk release bookkeeping: primarily version string updates across manifests and docs with no functional code changes in this diff. > > **Overview** > Updates the project for the `v1.45.0` release by bumping the crate/CLI version (`Cargo.toml`, `Cargo.lock`, `hk.usage.kdl`, generated CLI docs) and adding the `1.45.0` entry to `CHANGELOG.md`. > > Refreshes documentation and example configs to reference the new versioned Pkl package URLs (`docs/*.md`, `docs/public/*.pkl`, `hk-example.pkl`). > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit cfe2da5. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <[email protected]>
Summary
cancel-in-progressgroup,if: always()overrides cancellation and runs thefinalaggregator even on superseded commits.!cancelled()still runs on upstream success or failure but skips when the workflow is cancelled — saves a runner and avoids confusing error annotations on already-superseded shas.final-aggregator pattern +cancel-in-progress: truehere, so the same fix applies.Test plan
🤖 Generated with Claude Code
Note
Low Risk
Low risk CI-only change that adjusts when the
finaljob runs; main impact is potentially skipping failure aggregation on cancelled/superseded runs.Overview
Updates the GitHub Actions
finalaggregator inci.ymlto useif: ${{ !cancelled() }}instead ofalways(), so it still runs after upstream success/failure but does not run when the workflow is cancelled (e.g., due tocancel-in-progress). This avoids consuming runners and emitting misleading failure annotations on superseded commits.Reviewed by Cursor Bugbot for commit 3b8b543. Bugbot is set up for automated code reviews on this repo. Configure here.