開発時の確認
routerd は 2 つの自動化経路を分けています。
- CI workflow は通常の push と pull request を確認します。
- release workflow は release tag を push した後にリリースアーカイブを生成します。
release workflow は複数の OS と CPU アーキテクチャーを対象にします。 また、GitHub Release の成果物も公開します。 そのため、通常の CI とは分けています。
CI workflow
.github/workflows/ci.yaml は branch push と pull request で動きます。
Ubuntu runner を使い、レビュー前に緑に保つべき範囲を確認します。
go test ./...
make check-schema
make validate-example
make website-build
CI workflow はリリース成果物を公開しません。
リリースアーカイブは、日付ベースの tag で Release workflow が生成します。
pre-commit hook
リポジトリには任意で使える pre-commit hook を含めています。
ln -sf ../../scripts/pre-commit.sh .git/hooks/pre-commit
chmod +x scripts/pre-commit.sh
有効にすると、git commit の前に次の確認を実行します。
go test ./...
make check-schema
どちらかが失敗すると commit は止まります。 schema の差分やテスト失敗を CI の前に検出できます。
緊急でローカル commit が必要な場合は、次の環境変数を指定します。
ROUTERD_SKIP_PRE_COMMIT=1 git commit
後続の修正が明確な場合だけ使ってください。 branch を push した後は CI が実行されます。