-
Notifications
You must be signed in to change notification settings - Fork 0
39 lines (33 loc) · 1.23 KB
/
Copy pathapi-baseline.yml
File metadata and controls
39 lines (33 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
name: API Baseline
# F3 merge gate: the public-API baseline tests run on every PR (and push to main), so an
# accidental breaking change to an exported surface fails BEFORE merge — not only at release
# tag time. This makes the major/minor boundary (VERSIONING.md) mechanically enforced: a removed
# or changed baseline line fails the gate; an intentional change regenerates the baseline
# (UPDATE_API_BASELINE=1 go test ./<pkg>/) as a reviewed commit.
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
api-baseline:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: recursive
- name: Setup Go
uses: actions/setup-go@v6
with:
go-version: "1.26.x"
- name: Public-API baseline gate
# No continue-on-error: any exported-surface drift fails the PR. Covers every package
# whose public API is pinned with an api_baseline.txt.
run: |
go test -count=1 \
./serverfn/ ./query/ ./localfirst/ ./agentui/ ./validate/ \
./anim/ ./timetravel/ ./workbench/ ./wholestack/ \
-run 'APIBaseline|ApiBaseline|API_BASELINE'