LoginSignup
28
13

More than 5 years have passed since last update.

Bitriseでtag打ち〜リリースノート作成まで自動化する

Last updated at Posted at 2019-04-03

今回のゴール

  1. releaseブランチにマージされたら、それをhookにBitriseのリリースビルドのワークフローを起動
  2. 自動でtag打ちし、リリースページをGitHub上に作成する
  3. リリースノートにはそのリリースで実装したコミットログが列挙されており、どのリリースでなんの対応をしたか後から把握できる

Bitriseの公式ブログ「Create release notes and versioning with the release workflow」でタグ打ちをトリガーにリリースノートを自動生成する記事があるが、
タグ打ちまで自動化するといくつかカスタマイズが必要だったので記事にした。

完成形

最終的にこんな感じでiTunes Connectデプロイ後、自動でリリースノートが生成される
タグに紐づいたコミットログとそのリンクが一覧で確認できる

release.png

手順

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

steps.png

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

trigger.png

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_VERSIONXcode 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 を追加
1. の手順で設定した 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: の項目で確認できる

output.png

28
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
13