Open10
tagpr の仕組み調べる
エントリー
versionFile の検索
detectVersionFile
versionFile: detectVersionFile 内で呼ばれるけど現状ここの言語情報は使ってないっぽい
bumpVersionFile: 正規表現で replace
vPrefix
GitHub Actions デフォルトのトークンで tagpr を使用するには、organization 側で GitHub Actions が PR 作成することを許可しないといけない。
- organization の Settings > Actions で
Allow GitHub Actions to create and approve pull requestsをチェック - repository 側で
Allow GitHub Actions to create and approve pull requestsをチェック
tagpr で作られたブランチはデフォルトで patch バージョンを bump する。これを修正したいとき、リポジトリのバージョン管理で versionfile を使ってる場合は main ブランチで versionfile を変更して push する。
これをすると tagpr で作られた PR の書き換えが起きる。
tagpr で作られたブランチは常に main ブランチを追従してくれる。
個人のリポジトリでの tagpr の権限エラーが起きたとき、以下のように設定する。
リポジトリの Settings > Actions > General > Workflow permissions

ポイントは以下 2 つ:
- tagpr はリポジトリ内のファイルを書き換えるので、リポジトリのコンテンツに対して read / write 権限が必要
- tagpr は PR を作成するのでその作成権限が必要
tagpr で構築したワークフローが失敗したとき、正しく動くまで検証するとき
- main へ push
- tagpr により release PR が自動で作られる
- release PR 上でリリース作業を行う(
CHANGELOG.mdの編集など) - マージ
- リリース用のフローが実行される
- 失敗する(このときタグとリリースは作成されてしまっている)
- リモートのタグを消す(リモートのタグを消すとタグに紐づいた GitHub Releases は消える)
git push origin :v1.2.0
- ローカルの tagpr ブランチを消す(このあと同じ名前のブランチがリモートで生成され、それを pull するので競合する)
git branch -d tagpr-from-v1.1.0
- GitHub Actions のワークフロー.yml を修正して main へ push
- release PR 上でリリース作業を行う(同じバージョンの
CHANGELOG.mdが追加されてしまうので削除する) - マージ
- 3 ~ 9 を繰り返す
多分個人のプライベートリポジトリを作って小さく試してから本番環境に投入するのが良い。リモートのコミット履歴が CI の試行錯誤で汚れちゃうし。