Repository navigation
ci(docker): publish only when the bot images' inputs change - #541
Conversation
publish-docker.yml ran on every push to dev, so a merge that touches neither bot queued a publish of the same bot code behind another docker-publish approval: the contracts-only merge of PR 529 (1c17fe9) did. The push trigger now filters on what the two Dockerfiles copy (relayer-cli, validator-cli, contracts, the root Yarn files) plus .dockerignore and the workflow itself. Tag pushes ignore path filters, so every v* tag still publishes; workflow_dispatch covers a dev push the filter skips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✅ Deploy Preview for veashi-scan canceled.
|
✅ Deploy Preview for veascan ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Filter Docker publish triggers .github/workflows/publish-docker.yml |
The workflow adds path filters for dev pushes covering bot directories, contracts, root Yarn files, .dockerignore, and the workflow itself. Comments describe tag behavior, the 3,000-file filter limit, and workflow_dispatch as an alternative. |
Priority:
Estimated code review effort: 2 (Simple) | ~8 minutes
Change: Other
Possibly related PRs
- kleros/vea#528: Creates the Docker publishing workflow that this change updates.
- kleros/vea#537: Changes Dockerfiles and root Node configuration covered by the new publish paths.
- kleros/vea#530: Changes relayer code covered by the new publish paths.
Suggested reviewers: jaybuidl
Merge Risk: 
Minimal · up to 85c83
-
The trigger filters preserve relevant publishing paths, tag pushes, and manual dispatch.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
A rabbit checks the paths at dawn
The Docker workflow filters on
When dev changes, it reads the list
A matching tag will not be missed
Then carrots hop into the bin
Comment @coderabbitai help to get the list of available commands.
|



Why
publish-docker.ymlruns on every push to dev, and every merge is a push. The contracts-only merge of #529 (1c17fe9) queued a second publish of the same bot code as #528's (e6bdb03), behind anotherdocker-publishapproval, and had to be cancelled by hand (run 40638044111). Every Dependabot, contract or docs merge would do the same.What
The push trigger gets a
pathsfilter with what the two Dockerfiles copy, plus the files that change the build:relayer-cli/**,validator-cli/**,contracts/**(each image copies its bot workspace and builds the contracts TypeChain)package.json,yarn.lock,.yarnrc.yml,.yarn/releases/**(copied into both images).dockerignoreand the workflow fileThe relayer pulls
@kleros/veashi-sdkfrom npm, not the workspace, soveashi-sdk/is not an input.Unchanged
v*tag still publishes: GitHub does not evaluate path filters on tag pushes.workflow_dispatchstill publishes dev by hand, for a push the filter skips (a diff over 3,000 files).Checked
🤖 Generated with Claude Code
PR-Codex overview
This PR updates the
.github/workflows/publish-docker.ymlfile to specify paths for Docker image inputs and improve the workflow's behavior on tag pushes.Detailed summary
pathsto restrict Docker image inputs to specific files and directories:relayer-cli/**validator-cli/**contracts/**package.jsonyarn.lock.yarnrc.yml.yarn/releases/**.dockerignore.github/workflows/publish-docker.ymlworkflow_dispatchtrigger for manual workflow execution.Summary by CodeRabbit
devbranch to changes in specified project files. Version-tag publishing continues to run regardless of changed files.dev-branch changes may require a manual run.