ci: path-filter docker.yml and ci-macos-main.yml push triggers - #1336
Open
mjacobs wants to merge 1 commit into
Open
ci: path-filter docker.yml and ci-macos-main.yml push triggers#1336mjacobs wants to merge 1 commit into
mjacobs wants to merge 1 commit into
Conversation
Both workflows ran on every push to main regardless of what changed, so a docs-only or frontend-only merge still built and pushed the Docker image and occupied the self-hosted macOS runner. desktop-artifacts.yml and desktop-macos-main.yml already gate on paths for the same reason; this applies the same pattern here. docker.yml now filters on cmd/**, internal/**, frontend/**, go.mod, go.sum, Dockerfile, .dockerignore, docker-entrypoint.sh, and its own workflow file — everything the Dockerfile's COPY and go:embed pull into the built binary and image. ci-macos-main.yml filters on cmd/**, internal/**, testdata/golden/**, go.mod, go.sum, and its own workflow file, matching what its Go Test step actually exercises (fsevents, sync, db, and cmd/agentsview, whose usage_test.go reads fixtures from testdata/golden); frontend/dist is embedded as a placeholder in this test path, not built, so frontend/** doesn't need to be in its filter. Path filters are not evaluated for tag pushes (GitHub's documented behavior), so docker.yml's paths filter has no effect on the tags: 'v*' trigger — a release tag always builds and publishes regardless of which files it touches. The branch is unprotected (GET /branches/main/protection returns 404), so neither workflow is a required status check today and a path-skipped run can't block anything on main. Verified against history: 33c9695 (docs: add contributor engineering guide) touches no path in either filter and would now be skipped by both; ca808ec (feat(artifact): add explicit folder transport) touches cmd/** and internal/** and would still trigger both. Generated with Claude Code Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
roborev: Combined Review (
|
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.
docker.ymlandci-macos-main.ymlbuild the Docker image and run themacOS test suite on every push to
main, even when the change isdocs-only or frontend-only.
desktop-artifacts.ymlanddesktop-macos-main.ymlalready gate onpaths:to avoid this; this PRapplies the same pattern to the other two workflows so a docs commit
stops occupying the self-hosted macOS runner and rebuilding/republishing
the Docker image.
Paths chosen
docker.yml:cmd/**,internal/**,frontend/**,go.mod,go.sum,Dockerfile,.dockerignore,docker-entrypoint.sh, andits own workflow file — everything the
Dockerfile'sCOPYandgo:embedsteps pull into the built binary and image.ci-macos-main.yml:cmd/**,internal/**,testdata/golden/**,go.mod,go.sum, and its own workflow file — matching the packagesits
Go Teststep exercises (internal/fsevents,internal/sync,internal/db,cmd/agentsview), including the golden fixturescmd/agentsview/usage_test.goreads fromtestdata/golden.frontend/**is intentionally left out: in this test path,internal/web's embeddeddistdirectory is just the git-committedplaceholder, not a real frontend build, so frontend changes don't
affect what these tests exercise.
Required-check caveat
GET /repos/kenn-io/agentsview/branches/main/protectionreturns 404(branch not protected), so neither workflow is a required status check
today — a path-skipped run can't block anything on
main. Worth asecond look if branch protection gets added later, since a skipped
required check on a push-triggered (not PR-triggered) workflow stays
pending rather than reporting green.
One more finding from review:
docker.yml'spaths:filter has noeffect on its
tags: ['v*']trigger, by GitHub's design — path filtersare not evaluated for tag pushes — so tagged releases still always
build regardless of which files a tag's commit touches.
Verified against history
33c9695c(docs: add contributor engineering guide) touches nothingin either filter and would now be skipped by both workflows.
ca808ec2(feat(artifact): add explicit folder transport) touchescmd/**andinternal/**and would still trigger both.🤖 Generated with Claude Code
https://claude.ai/code/session_01Gg4bVx9TbcLEeg2Zd5SNaz