From 4e1eb38a557464957d075a54fb36afe04043e7ad Mon Sep 17 00:00:00 2001 From: Antoine Toussaint <312536060+antoinetoussaint-byte@users.noreply.github.com> Date: Sun, 11 Oct 2026 13:59:47 -0400 Subject: [PATCH] fix(ci): build the breaking-change baseline with the same path filter as the input #1052 added `vendor` as a second buf module under the accounts proto directory. The check built the current side with `--path .../saas` (one image) but compared it against the unfiltered baseline directory (two images), so buf refused to compare: "input contained 1 images, whereas against contained 2 images". main has been red on this step since 3eb4b10f, and so is every pull request. Build the baseline into an image with the same filter and compare image to image. Verified locally against main (passes), against the pre-#1052 main (passes; #1052 was additive), and with a deleted RPC (fails, naming it). Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 843aa5589..b6bf22e83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -483,9 +483,15 @@ jobs: git archive origin/main module/services/accounts/proto | tar -x -C "${baseline}" # Compare the owned module as one Buf image; the vendored option # closure is a separate module, not a second public API to compare. + # Both sides are built with the same --path filter. The proto + # directory holds two buf modules (the owned API and the vendored + # option closure under vendor/), so an unfiltered baseline yields two + # images against the filtered input's one and buf refuses to compare. buf build module/services/accounts/proto --path module/services/accounts/proto/saas -o "${baseline}/current.binpb" + buf build "${baseline}/module/services/accounts/proto" \ + --path "${baseline}/module/services/accounts/proto/saas" -o "${baseline}/against.binpb" buf breaking "${baseline}/current.binpb" \ - --against "${baseline}/module/services/accounts/proto" \ + --against "${baseline}/against.binpb" \ --config module/services/accounts/proto/buf.yaml --exclude-imports - name: Execute declared generators and reject drift working-directory: module/tools