chore(ci): harden CI workflows#135
Merged
LadyBluenotes merged 2 commits intoMay 13, 2026
Merged
Conversation
- Add job-level timeout-minutes to all workflows (15-45 min depending on job). - Add concurrency group with PR-only cancel-in-progress to benchmarks workflow. - Add version comment to autofix-ci/action SHA pin (v1.3.2). No behavioral changes: test commands, schedules, deploy targets, matrix configs, and notification settings are untouched.
commit: |
LadyBluenotes
approved these changes
May 13, 2026
|
View your CI Pipeline Execution ↗ for commit 16f84b8
☁️ Nx Cloud last updated this comment at |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hardens GitHub Actions workflows against common CI/CD attack vectors by adding job timeouts, PR concurrency cancellation, and tightening an existing version pin comment. No behavioral changes — purely mechanical hardening.
Findings & fixes applied
timeout-minutes:— added to 5 jobs across all workflows (autofix: 20, benchmarks: 30, pr/test: 30, pr/preview: 30, release: 45, zizmor: 10). Defends against stuck jobs consuming Actions minutes indefinitely.cancel-in-progress:— added tobenchmarks.ymlwith PR-only cancellation (cancel-in-progress: ${{ github.event_name == 'pull_request' }}). Push-to-main runs continue uninterrupted; redundant PR runs cancel.# v1.3.2annotation toautofix-ci/action@635ffb0c...(already SHA-pinned, comment was missing for readability).State going in (already good — left untouched):
permissions:blocks present on every workflow.actions/checkouthaspersist-credentials: falseeverywhere exceptrelease.yml(which legitimately pushes back).autofix.ymlandpr.ymlalready have concurrency cancel-in-progress.cancel-in-progress: false(correct — never cancel mid-publish).pull_request_targetusage anywhere in the repo.timeout-minutes: 10to match the template.Findings deferred (need maintainer review)
None — this repo was already well-hardened. No
pull_request_targetpatterns, nosecrets.*exposure inrun:, no script-injection vectors viagithub.event.*interpolation, nocurl | shpatterns.pnpm bump
n/a — already on pnpm@11.1.1 since commit 915f584 (#133). Repo's
pnpm-workspace.yamlalready uses pnpm 11 features (allowBuilds,packageExtensions, etc.) correctly. No migration needed.Validation
pnpm install: not re-run — no manifest changespnpm run build: not re-run — no source / dependency changesWhat I did NOT change
.npmrcedits.packageManager/ pnpm-workspace.yaml edits — already at pnpm@11.1.1.