feat(api): multi-protocol public API surface (GraphQL + gRPC + REST + MCP) #62
Workflow file for this run
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: 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 |