Skip to content

ci(docker): publish only when the bot images' inputs change - #541

Merged
mani99brar merged 1 commit into
devfrom
ci/publish-docker-paths
Oct 28, 2026
Merged

mani99brar merged 1 commit into
devfrom
ci/publish-docker-paths

Conversation

@mani99brar

@mani99brar mani99brar commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Why

publish-docker.yml runs 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 another docker-publish approval, 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 paths filter 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)
  • .dockerignore and the workflow file

The relayer pulls @kleros/veashi-sdk from npm, not the workspace, so veashi-sdk/ is not an input.

Unchanged

  • Every v* tag still publishes: GitHub does not evaluate path filters on tag pushes.
  • workflow_dispatch still 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.yml file to specify paths for Docker image inputs and improve the workflow's behavior on tag pushes.

Detailed summary

  • Added comments explaining the purpose of the path filters.
  • Introduced paths to restrict Docker image inputs to specific files and directories:
    • relayer-cli/**
    • validator-cli/**
    • contracts/**
    • package.json
    • yarn.lock
    • .yarnrc.yml
    • .yarn/releases/**
    • .dockerignore
    • .github/workflows/publish-docker.yml
  • Included a workflow_dispatch trigger for manual workflow execution.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Summary by CodeRabbit

  • Chores
    • Limited automatic publishing runs from the dev branch to changes in specified project files. Version-tag publishing continues to run regardless of changed files.
    • Added a note that large dev-branch changes may require a manual run.

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>
@mani99brar
mani99brar requested a review from jaybuidl as a code owner October 28, 2026 05:46
@netlify

netlify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for veashi-scan canceled.

Name Link
🔨 Latest commit 85c83b6
🔍 Latest deploy log https://app.netlify.com/projects/veashi-scan/deploys/6ae18c2c154115098fa721da

@netlify

netlify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for veascan ready!

Name Link
🔨 Latest commit 85c83b6
🔍 Latest deploy log https://app.netlify.com/projects/veascan/deploys/6ae18c2c4e46831850263b5d
😎 Deploy Preview https://deploy-preview-541--veascan.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 670cdadc-0e76-415e-9a1f-08ab786895aa
Commits

Reviewing files that changed from the base of the PR and between 1c17fe9 and 85c83b6.

Files selected for processing: 1
  • .github/workflows/publish-docker.yml

Included review availability: This review used your included allowance. 3 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

Walkthrough

The Docker publishing workflow now filters dev branch push runs by changed paths. Tag pushes matching v* remain eligible regardless of those path filters.

Changes

Docker publishing

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: Low

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: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: limiting Docker publishing to changes in bot image inputs.
Docstring Coverage Passed 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. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
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.

@sonarqubecloud

Copy link
Copy Markdown

@mani99brar
mani99brar merged commit 6df2e51 into dev Oct 28, 2026
17 checks passed
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