Help us understand the problem. What is going on with this article?

bitrise.ymlをリポジトリ内で管理するための手引き

More than 1 year has passed since last update.

Bitriseはモバイル開発向けのCIサービス => bitrise.io

build_for.png

無料の範囲でiOSビルドを行うことができるので、個人プロジェクトにはありがたい。今回はReactNativeプロジェクトのリポジトリを設定して動かして見た。

bitrise.ymlでワークフローを設定する

Bitriseにリポジトリを設定した初期段階では、bitrise.ymlはサービス側(bitrise.io)で管理されているが、それをプロジェクトのリポジトリ内で管理したい。そんなとき。

当然ながら公式には手引きがある => Use bitrise.yml from repository

英語が分かる人なら何事もなく実現できるのだが、自分は公式の手引きが100%理解できていなかったために若干はまってしまった。上の手引きの概要をまとめつつ、はまったポイントを残しておきたい。

トリガーマップはbitrise.ioで持つ、それ以降はリポジトリ内で持つ

公式の手引きによると、bitrise.ymlのトリガーマップはbitrise.ioで持った方が良いとのこと。その理由は、リポジトリ内でトリガーマップを持つと、クローンした後でないとトリガーのパターンを判定できなくなるから。

bitrise.ioでトリガーマップの設定をすれば、下図のワークフローが始まる前にトリガーのパターンに応じて処理をしないというフローも作れるのだが、全てをリポジトリ内で持つと必ずクローンしなければならなくなる。

bitrise_flow01.png

なので公式ではbitrise.ymlを分けて持つことが推奨されている。

上図のGit Clone Repositoryまでをbitrise.ioで設定し、それ以降のワークフローをリポジトリ内で設定する感じ。

作業手順

  • bitrise.io上のbitrise.ymlをダウンロード
  • リポジトリ直下にbitrise.ymlを置く
  • リポジトリ内のbitrise.ymlのstepsにあるactivate-ssh-keygit-cloneの設定を削除する
  • bitrise.ioのbitrise.ymlの内容を公式記載の設定で上書きする
  • あとはpushすれば動きます(ということだ)

作業をした後のbitrise.io上のWorkFlowsは下のような感じになる。

bitrise_flow02.png

はまった点

上の手順をやって動かしてみたが、continue from repoでエラーになってしまった。エラー内容は『ciっていうworkflowは定義されていない』みたいな感じだった。

自分はこの時点でBitriseのドキュメントをあんまり読んでなかったので、ちゃんと勉強してから戻ってきたら、おそらくbitrise.ioのbitrise.ymlで設定しているbitrise run "${BITRISE_TRIGGERED_WORKFLOW_ID}"で引っかかってるんだろうなと当たりがついた。

直前にprintenvを入れて確認してみると、この変数にciっていう値が入っていた。

この変数はbitrise.ioのtrigger_mapで設定しているworkflowの値が入るらしい。

公式の手引きにもちゃんと書いてあった(初見で理解できなかった自分にエールを)

The trick is bitrise run "\${BITRISE_TRIGGERED_WORKFLOW_ID}". The BITRISE_TRIGGERED_WORKFLOW_ID environment variable is set to the "entry" workflow, the one which started the build. So, by running the ci workflow, the bitrise run "${BITRISE_TRIGGERED_WORKFLOW_ID}" command will be the same as bitrise run "ci".

故に解法としては、bitrise.ioのtrigger_mapworkflowに設定している値と、リポジトリ内のworkflowsに設定している値を対応させてあげればよい。

以上

bitrise_logo.png

  • Bitriseのアイコン可愛い。癒される〜
  • Bitriseのアイコン可愛い。癒される〜
  • Bitriseのアイコン可愛い。癒される〜
mqtsuo02
フリーランスでエンジニアをやっていマッスル
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした