Skip to content

chore(ci): cancel stale PR runs, cache Composer and Docker layers, review dependencies - #32

Merged
abduns merged 2 commits into
mainfrom
chore/ci-hardening
Nov 3, 2026
Merged

abduns merged 2 commits into
mainfrom
chore/ci-hardening

Conversation

@abduns

@abduns abduns commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • tests.yml: a new push to a pull request cancels the run for the previous commit; runs on main are never cancelled.
  • tests.yml: Composer downloads are cached, keyed by composer.lock.
  • tests.yml: the Docker job builds through Buildx with the GitHub Actions layer cache, on the same linux-amd64 scope the docker workflow uses, so a tag build starts from the layers the last run on main produced.
  • dependency-review.yml: new. Fails a pull request that adds a dependency with a known vulnerability of high severity or above, the same threshold as the existing composer audit and pnpm audit --audit-level=high.
  • docker.yml: a shellcheck directive on the intentional word splitting, so actionlint runs clean across all workflows.

Test plan

  • actionlint passes on all three workflows
  • tests workflow passes on this PR (first run warms the caches)
  • dependency review workflow passes on this PR

🤖 Generated with Claude Code

abduns and others added 2 commits November 3, 2026 09:35
…view dependencies

The tests workflow now cancels a pull request run when a newer commit arrives,
restores Composer downloads keyed by composer.lock, and builds the CI image
through Buildx with the GitHub Actions layer cache on the same linux-amd64
scope the docker workflow uses, so a tag build starts from the layers the last
run on main produced.

A dependency review workflow fails a pull request that adds a dependency with
a known vulnerability of high severity or above, the same threshold as the
Composer and pnpm audits.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The Dockerfile pulls FrankenPHP, Node and Composer by floating tag, and
docker-compose.yml pulls Postgres and Redis the same way. Nothing watched them,
so a base image update could change the shipped image without a commit here.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@abduns
abduns merged commit 118e7e9 into main Nov 3, 2026
5 checks passed
@abduns
abduns deleted the chore/ci-hardening branch November 3, 2026 02:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant