Repository navigation
ci: build the dev container when anything it is built from changes - #35
Open
amiralis1365 wants to merge 1 commit into
Open
amiralis1365 wants to merge 1 commit into
amiralis1365 wants to merge 1 commit into
Conversation
The devcontainer filter listed six paths under .devcontainer/ and not the workflow, so a new file there, or a change to the build job itself, merged without a build. It now matches .devcontainer/** and validate.yaml. The job's runCmd imports the SDK from the environment post-create built instead of echoing, and Validate Status waits on Detect Changes and fails on a cancelled job too. The two actions the change touches are pinned to the commits their tags resolve to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Closes #34.
Summary
Validatealready builds the dev container only when thedevcontainerfilter matches. This closes the three gapsleft:
.devcontainer/**plus this workflow. It listed six paths under.devcontainer/by name, so anew file there, such as a Features lockfile, didn't trigger the build. Nor did a change to
validate.yaml, so apull request that edited the build job merged without running it. This pull request is one: under the old filter
its own run would have skipped the build.
runCmdchecks something. It wasecho "devcontainer smoke test passed". It now runs.venv/bin/python -c 'import musher'inside the container after post-create, which proves theuv syncpost-createran left a working environment.
upstill proves the build and every lifecycle script, post-create'sbase_verify_toolsincluded.Validate Statuswaits onDetect Changes. WhenDetect Changesfailed, every job was skipped and the statuspassed. It now fails then, and on a cancelled job too.
The two actions this touches are pinned to the commits their tags resolve to today, so nothing they run changes:
dorny/paths-filter@ceb8a2b…(v4=v4.0.3) anddevcontainers/ci@513af61…(v0.3=v0.3.1900000450). Theseare the same pins platform, host-agent and pelorus use.
No GitHub token goes into the container. Nothing in this repository's lifecycle scripts calls the GitHub API: they
don't use mise, and Claude Code, Codex and lefthook come from their own installers and npm.
No ruleset requires a check here (only a review), so
Validate Statusreports rather than blocks.Main's dev container doesn't build until #33 lands (#30:
base:ubuntunow resolves to Ubuntu 26.04, which thedocker-in-docker Feature refuses). This pull request's own
Devcontainer Buildtherefore fails until then. Thatfailure is the test working. Merge #33 first, then update this branch.
What counts as a dev container change
.devcontainer/**devcontainer.json,.env.example, the compose stack and its config, the lifecycle scripts.github/workflows/validate.yamlNot inputs:
pyproject.tomlanduv.lock(post-create runsuv sync, butCIinstalls from them the same way),Taskfile.yml,lefthook.yml, the code and the docs.What stays the same
ShellCheck,Compose Configand theirscriptsandcomposefilters. chore(devcontainer): keep more state across rebuilds #33 edits those lines, and this changemerges cleanly with it (
git merge-tree).cacheFromincluded.Test plan
actionlint1.7.12 with shellcheck 0.11.0 on PATH: clean.The old and new filter, emulated on this repository's history:
.devcontainer/files)validate.yamlonly)git merge-treeagainst chore(devcontainer): keep more state across rebuilds #33: clean. Against Dependabot's chore(deps): Bump the github-actions group across 1 directory with 4 updates #28 (checkout v6 → v7): one conflict, on the line besidedorny/paths-filter. Dependabot rebases its own pull request when that happens.This pull request changes
validate.yaml, so its own run builds and starts the dev container. It fails until chore(devcontainer): keep more state across rebuilds #33lands, as described above.
🤖 Generated with Claude Code