Skip to content

Relay proto: well-known endpoint resolver + RAMP* prefix purge #71

Relay proto: well-known endpoint resolver + RAMP* prefix purge

Relay proto: well-known endpoint resolver + RAMP* prefix purge #71

Workflow file for this run

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