ビルドとリリース
リリース成果物のビルド
cargo build --workspace --release
特定のクレートのみをビルド:
cargo build -p edgesentry-rs --release
crates.io への公開
- まず品質ゲートを検証:
./scripts/run_unit_and_license_check.sh
cargo clippy --workspace --all-targets --all-features -- -D warnings
- 一度だけログイン:
cargo login <CRATES_IO_TOKEN>
- ドライラン公開:
cargo publish --dry-run -p edgesentry-rs
- 公開:
cargo publish -p edgesentry-rs
GitHub Actions リリース自動化( macOS / Windows / Linux )
このリポジトリには.github/workflows/release.ymlが含まれています。
- トリガー:
v0.1.0のようなタグをプッシュ - 品質ゲート:ビルド・ユニットテスト・ライセンスチェック・ clippy
edgesentry-rsを crates.io に公開- Linux ・ macOS ( x64 + arm64 )・ Windows 向けの
edsバイナリをビルド - パッケージ済みバイナリを GitHub Release アセットにアップロード
注意:.github/workflows/ci.ymlはedgesentry-rsのcargo publish --dry-runを実行します。
必要な GitHub シークレット:
CRATES_IO_TOKEN:cargo publishが使用する crates.io API トークン
マージ後の自動バージョンインクリメント
このリポジトリには.github/workflows/auto-version-tag.ymlも含まれています。
- トリガー:
mainで CI が成功したとき - アクション:
Cargo.tomlのworkspace.package.versionを更新し、vX.Y.Zタグを作成・プッシュ - その後:そのタグによって
release.ymlがトリガーされ、完全なリリースパイプラインが実行される
バージョンバンプルール( Conventional Commits ):
fix:-> パッチバンプ(x.y.z->x.y.(z+1))feat:-> マイナーバンプ(x.y.z->x.(y+1).0)!またはBREAKING CHANGE-> メジャーバンプ(x.y.z->(x+1).0.0)