Skip to content

ci: build UI bundle before Go in release + add PR ci workflow#2

Merged
aksOps merged 1 commit into
mainfrom
ci/build-ui-in-pipeline
Apr 26, 2026
Merged

ci: build UI bundle before Go in release + add PR ci workflow#2
aksOps merged 1 commit into
mainfrom
ci/build-ui-in-pipeline

Conversation

@aksOps

@aksOps aksOps commented Apr 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • release.yml: insert pnpm + Node setup and `make ui` between Set up Go and Run tests. Last 5 release runs (since 2026-04-22) failed at the test step because `internal/serve/dist/` is gitignored and CI never populated it; `//go:embed all:dist` errors when the directory is empty. The populated `internal/serve/dist/` flows through to the cross-compiled binary builds and into the air-gapped `-src.tar.gz` (existing tar only excludes top-level `./dist` staging).
  • ci.yml (new): gate PRs + non-main pushes on the same prerequisites — UI build, then `go vet/build/test` (with `-tags sqlite_fts5`) and `pnpm typecheck/test`. Mirrors the release pipeline so a broken main is caught before merge instead of after.

This PR self-validates via the new ci.yml.

Test plan

  • PR check (`build-and-test`) green on this PR
  • After merge: next push to main re-runs release.yml and produces a tagged release with all 4 platform binaries + `-src.tar.gz` (last successful: v0.1.1, 2026-04-18)

Follow-ups (not in this PR)

  • `release.yml` builds binaries without `-tags sqlite_fts5`; the current shipped binaries from v0.1.0/v0.1.1 will panic at boot on FTS5 use (`no such module: fts5`). Worth a separate PR adding the build tag to the cross-compile loop and `go test` invocation.
  • Promoting `govulncheck`, `pnpm audit`, and Playwright `e2e` from `make regression` into ci.yml — currently those run only locally.

🤖 Generated with Claude Code

The release pipeline has been broken since 2026-04-22 (5 consecutive
failed runs) because internal/serve/dist/ is gitignored and the workflow
never built it before invoking go test / go build. //go:embed all:dist
errors out when the directory is empty.

release.yml: insert pnpm + Node setup and `make ui` between Set up Go
and Run tests. The populated internal/serve/dist/ is now picked up by
both the test step and the cross-compiled binary builds, and is
naturally included in the air-gapped src tarball (existing tar excludes
top-level dist/ only).

ci.yml: new workflow gating PRs and non-main pushes on the same UI
build + go build/vet/test + ui typecheck + vitest. Mirrors the release
pipeline's prerequisites so a broken main is caught before merge. e2e
and audit steps live in `make regression` for now — promotable to
merge gates later.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Comment thread .github/workflows/ci.yml
go-version-file: go.mod

- name: Set up pnpm
uses: pnpm/action-setup@v4
go-version-file: go.mod

- name: Set up pnpm
uses: pnpm/action-setup@v4
@aksOps aksOps merged commit 04dea43 into main Apr 26, 2026
8 checks passed
@aksOps aksOps deleted the ci/build-ui-in-pipeline branch April 26, 2026 06:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants