今回のゴール
- releaseブランチにマージされたら、それをhookにBitriseのリリースビルドのワークフローを起動
- 自動でtag打ちし、リリースページをGitHub上に作成する
- リリースノートにはそのリリースで実装したコミットログが列挙されており、どのリリースでなんの対応をしたか後から把握できる
Bitriseの公式ブログ「Create release notes and versioning with the release workflow」でタグ打ちをトリガーにリリースノートを自動生成する記事があるが、
タグ打ちまで自動化するといくつかカスタマイズが必要だったので記事にした。
完成形
最終的にこんな感じでiTunes Connectデプロイ後、自動でリリースノートが生成される
タグに紐づいたコミットログとそのリンクが一覧で確認できる

手順
Stepの手順はこんな感じ。
※実際はDeploy to iTunes Connectの前にビルド番号をインクリメントしたり色々Stepがある

事前準備としてPUSHトリガーの設定が必要
適宜GitHubのPersonal Access Tokenなど設定してwebhookを有効にする

1. タグ名を環境変数としてセットしておく
後工程のリリースノート作成のステップ Github Release
でタグ名が必要になるが、そのステップでデフォルト指定されている $BITRISE_GIT_TAG
はタグ打ちをトリガーにしないと値が格納されない。
今回はタグ打ちがトリガーではなく、Pushトリガーのため自前で定義する
自前の環境変数の設定の仕方
Bitriseの環境変数の管理はBitrise社製のenvmanを使用している。
script
のステップ内で envman
コマンドを使えば自前の環境変数が設定できる
参考: Exposing env vars and using them in another step
独自環境変数 GIT_TAG
を設定
envman add --key GIT_TAG --value "${XPI_VERSION}(${BITRISE_BUILD_NUMBER})"
※ XPI_VERSION
は Xcode Project Info
のステップで生成される
2.タグ打ちをする
Step: Git tag
を追加
Tag to set on current commit
に、1.で指定した環境変数をセットする
3.CHANGE LOGを作る
Step: Generate Changelog
を追加
このステップで生成されるチェンジログは $BITRISE_CHANGELOG
として次のリリースノート作成のステップで使える
4.リリースノートを作る
Step: Github Release
を追加
- の手順で設定した
GIT_TAG
をTag, Release nameに設定
yamlはこんな感じ
- github-release:
inputs:
- username: "$GITHUB_USERNAME"
- name: "$GIT_TAG"
- body: "$BITRISE_CHANGELOG"
- tag: "$GIT_TAG"
- api_token: "$GITHUB_PERSONAL_ACCESS_TOKEN"
メモ
Stepで生成される環境変数は、各ステップ詳細の最下部にある This step will generate these output variables:
の項目で確認できる
