リリースマネージャー
このスキルは、以下の周辺における現在の margo リリースフローを自動化します。
scripts/release.shscripts/homebrew-source-sha.shdocs/HOMEBREW.mdにドキュメント化されている個人用タップモデル
ワークフロー
1. リリースの準備
リポジトリルートから準備スクリプトを実行します。
python3 skills/release-manager/scripts/prepare_release.py 0.1.1
このスクリプトは以下の処理を行います。
- 要求されたバージョンの検証
- ローカルの git 状態の確認
- リポジトリローカルの
GOCACHEを使用したgo test ./...の実行 scripts/release.shによるリリースアーカイブのビルド- 各ビルド済みアーカイブの抽出と
margo versionの実行によるスモークテスト dist/release/release-<version>/配下へのリリースマニフェストとフォローアップチェックリストの書き込み
オプションフラグ:
--allow-dirty: ワークツリーがダーティでも続行します--skip-go-test: Go テストスイート全体をスキップします--tap-path /path/to/homebrew-margo: タップ固有のフォローアップ手順を含めます
2. 完了したリリースの検証
Git タグ、GitHub リリース、およびオプションのタップ更新が存在した後、以下を実行します。
python3 skills/release-manager/scripts/verify_release.py 0.1.1 --tap-path /path/to/homebrew-margo
このスクリプトは以下の処理を行います。
- ビルド済みアーカイブの再検証
- 利用可能な場合、
ghを介した GitHub リリースの検証 - タップフォーミュラが期待されるタグを指しており、プレースホルダーチェックサムではないことを確認
- タップチェックアウトが利用可能な場合、タップ修飾されたフォーミュラ名を使用して
brew installまたはbrew upgrade --build-from-source、続いてbrew test、brew audit --strictを実行
便利なフラグ:
--skip-gh-release-check--skip-brew--brew-formula jjanuszczak/margo/margo
指示
- このスキルは、現在のリポジトリの手動リリースモデルにのみ使用してください。リポジトリのドキュメントが変更されない限り、ボトル、GoReleaser、または
homebrew-coreの手順を導入しないでください。 - 最初に
prepare_release.pyを実行し、生成されたチェックリストを読んでからタグや GitHub リリースを作成することを推奨します。 - ネットワーク上の
ghまたはbrewの手順を現在の環境で完了できない場合は、生成された正確なフォローアップタスクをユーザーに報告し、大まかに言い換えないでください。
自己評価
スキルを変更した後は、必ず検証してください。
python3 skills/release-manager/evals/runner.py
以下を読んでください。
skills/release-manager/evals/reports/latest_results.json
評価に失敗した場合は、スクリプトまたは指示を修正し、作業を引き継ぐ前に評価を再実行してください。