Development checks
routerd uses two separate automation paths.
- The CI workflow checks normal pushes and pull requests.
- The release workflow builds signed release archives after a release tag is pushed.
The release workflow is intentionally separate because it builds multiple operating system and architecture archives and publishes GitHub Release assets.
CI workflow
.github/workflows/ci.yaml runs on branch pushes and pull requests.
It uses an Ubuntu runner and checks the development surface that should stay
green before review:
go test ./...
make check-schema
make validate-example
make website-build
The CI workflow does not publish release artifacts.
Release archives are created only by the Release workflow on date-based tags.
Pre-commit hook
The repository includes an optional pre-commit hook script:
ln -sf ../../scripts/pre-commit.sh .git/hooks/pre-commit
chmod +x scripts/pre-commit.sh
After enabling it, git commit runs:
go test ./...
make check-schema
If either command fails, the commit is stopped. This catches schema drift and test failures before they reach CI.
For an emergency local commit, set this environment variable:
ROUTERD_SKIP_PRE_COMMIT=1 git commit
Use that only when the follow-up fix is already clear. CI still runs after the branch is pushed.