Relay proto: well-known endpoint resolver + RAMP* prefix purge #71
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
| name: proto-ci | |
| # Guards the protocol wire contract and the generated SDKs: | |
| # - buf lint | |
| # - regenerate `gen/` and assert the committed tree matches (no drift) | |
| # - go build / vet / test the generated packages + tooling (incl. the | |
| # conformance suite: protovalidate CEL evaluation + doc-example validation) | |
| # The regenerate-and-diff step is the load-bearing one: it fails the build if | |
| # committed `gen/` (Go + TS SDKs and the rampvocab constant packages) does not | |
| # match a clean `buf generate` from the proto + plugin — i.e. someone changed | |
| # the proto/plugin without committing regenerated output, or hand-edited `gen/`. | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| proto: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - uses: bufbuild/buf-setup-action@v1 | |
| with: | |
| # Pin buf: gen/descriptor.binpb is a byte-exact, drift-gated artifact, and | |
| # a newer buf re-encodes the descriptor (vendored well-known types + | |
| # source_code_info spans) without any schema change — which fails the | |
| # drift gate on every run. Keep in lockstep with want_buf in ci-local.sh. | |
| version: 1.66.1 | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| # The full gating sequence lives in ONE place — scripts/ci-local.sh, the | |
| # same script developers run locally — so CI and local cannot drift. It runs | |
| # buf lint, regenerates gen/ and fails on drift (tracked OR untracked files), | |
| # go build/vet/test (incl. the conformance suite: protovalidate CEL evaluation | |
| # + doc-example validation), the doc-conformance gate, and buf breaking | |
| # (informational, pre-v1). The remark docs-guard step self-skips here because | |
| # node_modules is absent; docs-ci.yml owns the docs build. | |
| - name: gating sequence (scripts/ci-local.sh) | |
| run: ./scripts/ci-local.sh |