Skip to content

ci: add a build, vet and test-compile workflow - #432

Merged
Ryanmello07 merged 1 commit into
urnetwork:mainfrom
Ryanmello07:ci/build-and-test-upstream
Aug 11, 2026
Merged

ci: add a build, vet and test-compile workflow#432
Ryanmello07 merged 1 commit into
urnetwork:mainfrom
Ryanmello07:ci/build-and-test-upstream

Conversation

@Ryanmello07

Copy link
Copy Markdown
Contributor

This repository has no CI, so a change that breaks the build — or leaves a test file that no longer compiles — is currently only discovered by whoever pulls next. One workflow file, nothing else.

The part that matters: the sibling checkout

Every github.com/urnetwork/* dependency resolves through a replace ../ directive in go.mod, so a lone checkout does not build. It fails with:

missing go.sum entry for module providing package ...

which names nothing about the real cause. The workflow checks out all seven siblings — connect, glog, sdk, proxy, goidenticons, userwireguard, and urfoundation/sn — beside the tree, under exactly the directory names the replace directives expect. That is also the layout a developer needs locally, so the workflow doubles as executable documentation of it.

What it runs

step why
go build ./... the baseline
go vet ./... catches the printf/lock/copy classes cheaply
go test -run 'XXX_NO_SUCH_TEST' -count=1 ./... compiles every test binary without running any test

It deliberately does not run the suite. server.DefaultTestEnv expects postgres and redis, and standing those up (plus the WARP_ENV / WARP_SERVICE wiring test.sh exports) is a bigger change than this one and not something I could verify end to end here. Compiling the test binaries is the part that stays green without infrastructure while still catching the break that actually happens in practice — a model or handler signature changing out from under a test file. Running the suite for real is a natural follow-up.

Notes

  • Triggers on every branch, not a named list, so the file stays byte-identical wherever it is merged rather than baking one repository's branch layout into a shared file. concurrency with cancel-in-progress keeps a busy branch to one run at a time.
  • permissions: contents: read and timeout-minutes: 30 are set explicitly rather than inherited.
  • Siblings are checked out at their default branch. That does mean an unrelated push to connect can turn this red; if that proves noisy, the fix is to pin ref: per sibling and bump deliberately. I left them unpinned so the signal matches what a developer actually gets.

Verification

Every step was run locally against this tree with all seven siblings present (Go 1.26.5): go build ./..., go vet ./..., and the test-compile step all pass. The workflow YAML parses.

🤖 Generated with Claude Code

This repo has no CI, so a change that breaks the build or leaves a test
file uncompilable is only found by whoever pulls next.

The workflow's real content is the sibling checkout. Every
github.com/urnetwork/* dependency resolves through a `replace ../`
directive, so a lone checkout does not build -- it fails with "missing
go.sum entry", an error that names nothing about the actual cause. All
seven siblings are checked out beside the tree, which is also the layout
a developer needs locally.

It does not RUN the suite: server.DefaultTestEnv expects postgres and
redis, and standing those up is a larger change than this one. It does
compile every test binary, which catches the break that actually happens
in practice -- a model signature changing out from under a test file --
and stays green without infrastructure. Running the suite for real is a
good follow-up once service containers and the WARP_ENV wiring are
settled.

Triggers on every branch rather than a named list, so the file stays
identical wherever it is merged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Ryanmello07
Ryanmello07 merged commit fc60737 into urnetwork:main Aug 11, 2026
1 check passed
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.

1 participant