Skip to content

feat(api): multi-protocol public API surface (GraphQL + gRPC + REST + MCP) #62

feat(api): multi-protocol public API surface (GraphQL + gRPC + REST + MCP)

feat(api): multi-protocol public API surface (GraphQL + gRPC + REST + MCP) #62

Workflow file for this run

---
name: CI
on:
pull_request:
push:
branches: [main]
release:
types: [created]
permissions:
contents: read
jobs:
test:
name: Go tests (SQLite)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Run tests
run: make test
proto:
name: Proto lint + breaking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
# buf breaking needs main's history to diff against.
fetch-depth: 0
# buf breaking can only diff against main once main actually carries
# the proto module; before this PR series merges, main has no proto/
# and `buf breaking` fails with "had no .proto files".
- name: Check base branch has protos
id: base
run: |
if git ls-tree -d origin/main proto | grep -q proto; then
echo "has_proto=true" >> "$GITHUB_OUTPUT"
else
echo "has_proto=false" >> "$GITHUB_OUTPUT"
fi
- uses: bufbuild/buf-action@v1
with:
input: proto
lint: true
# `format: true` makes the action run `buf format -d --exit-code`,
# failing the job on any unformatted .proto. Catches drift before
# generated code can diverge.
format: true
# Only run breaking on PRs (push to main has nothing to diff
# against) and only once main carries the proto module.
breaking: ${{ github.event_name == 'pull_request' && steps.base.outputs.has_proto == 'true' }}
breaking_against: 'https://github.com/${{ github.repository }}.git#branch=main,subdir=proto'
# The action's PR comment needs permissions the default
# GITHUB_TOKEN of this job lacks ("Resource not accessible by
# integration"); skip it.
pr_comment: false