Skip to content

Commit 64d7db8

Browse files
committed
Public release: 2026-05-18
0 parents  commit 64d7db8

787 files changed

Lines changed: 156574 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Continuous-integration gates — run on every PR + every push to
2+
# main. Catches frontend type errors, Go vet/test regressions, and
3+
# the "I forgot to run `make web-build` before committing" class of
4+
# bug that silently shipped pre-v1.6.0.
5+
#
6+
# Tagged-release builds are handled by npm-release.yml; this file is
7+
# the pre-merge / pre-tag safety net.
8+
9+
name: ci
10+
11+
on:
12+
pull_request:
13+
push:
14+
branches: [main]
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
# ----------------------------------------------------------------
21+
# React frontend gates: install, typecheck, build. Also asserts the
22+
# committed embedded dist matches what a fresh build produces — if
23+
# `web/src/` was edited without rerunning `make web-build`, this
24+
# job fails with a clear actionable message. Without this gate the
25+
# embedded bundle silently drifted from the React source.
26+
# ----------------------------------------------------------------
27+
frontend:
28+
name: frontend
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v5
32+
33+
- uses: actions/setup-node@v5
34+
with:
35+
node-version: '22'
36+
cache: 'npm'
37+
cache-dependency-path: web/package-lock.json
38+
39+
- name: npm ci
40+
run: |
41+
cd web
42+
npm ci
43+
44+
- name: typecheck
45+
run: |
46+
cd web
47+
npm run typecheck
48+
49+
- name: build
50+
run: |
51+
cd web
52+
npm run build
53+
54+
- name: dist consistency check
55+
# Mirrors `make web-build`'s second half: regenerates the
56+
# embedded dir from web/dist and asserts it matches what's
57+
# committed. If it doesn't, the dev edited web/src/ but
58+
# forgot to commit the rebuilt bundle — a stale embed would
59+
# ship on the next release.
60+
run: |
61+
set -euo pipefail
62+
rm -rf internal/intelligence/dashboard/webapp/dist
63+
mkdir -p internal/intelligence/dashboard/webapp/dist
64+
cp -R web/dist/. internal/intelligence/dashboard/webapp/dist/
65+
if ! git diff --quiet --exit-code internal/intelligence/dashboard/webapp/dist; then
66+
echo "::error::Committed webapp/dist drifted from web/dist. Run \`make web-build\` and commit the result."
67+
git diff --stat internal/intelligence/dashboard/webapp/dist | head -40
68+
exit 1
69+
fi
70+
echo "embedded dist matches fresh build ✓"
71+
72+
# ----------------------------------------------------------------
73+
# Go gates — vet, test, build. Pure-Go so no special toolchain
74+
# beyond setup-go. Frontend build is independent (this job doesn't
75+
# need a fresh dist to compile; the committed embed satisfies the
76+
# //go:embed directive at compile time, even if it's stale for the
77+
# purposes of the runtime UI).
78+
# ----------------------------------------------------------------
79+
go:
80+
name: go
81+
runs-on: ubuntu-latest
82+
steps:
83+
- uses: actions/checkout@v5
84+
85+
- uses: actions/setup-go@v6
86+
with:
87+
go-version-file: 'go.mod'
88+
cache: true
89+
90+
- name: vet
91+
run: go vet ./...
92+
93+
- name: test
94+
# -race catches the watcher / proxy concurrency bugs that
95+
# otherwise slip past until live use.
96+
run: go test -race ./...
97+
98+
- name: build
99+
# `make build` skipped here — that target requires Node for
100+
# web-build, which the frontend job already verified. This
101+
# step exercises the Go compile path against the committed
102+
# embedded dist.
103+
run: |
104+
mkdir -p bin
105+
go build -trimpath -o bin/observer ./cmd/observer
106+
GOOS=windows GOARCH=amd64 go build -trimpath -o bin/antigravity-bridge.exe ./cmd/antigravity-bridge
107+
ls -l bin/

0 commit comments

Comments
 (0)