この記事はAndroidのCI環境をCircleCIからWerckerにした話に関連した投稿です。
概要
wercker.ymlのboxにQuay.io(キーio)でホストしたrepositoryを指定する方法についてのメモです。
Quay.ioは、セキュアなDocker private repositoryのホストサービスになります。Dockerのホスティングサービスは複数ありますが、社内の他プロジェクトで利用実績のあるQuay.ioを使用します。
wercker.ymlの例
以下はAndroidプロジェクトをビルドするwercker.ymlです。boxにはDockerHubのPublic Repositoryに登録したimageを使用しています。このboxで指定しているRepositoryをQuay.ioでホストした物に変更します。
box: horie1024/wercker-android-build:0.1
build:
steps:
- script:
name: execute unit test
code: |
./gradlew testDebug
- script:
name: execute assembleRelease
code: |
./gradlew assembleRelease
wercker.ymlのboxセクションでPrivate Repositoryを指定する
wercker.ymlのboxセクションでPrivate Repositoryを指定する方法は、こちらのドキュメントが参考になります。そして、Quay.ioではyamlは以下のようになります。
idにはRepository名、username、passwordについては、WerckerのWeb UIで入力した環境変数を参照するようにします。
build:
box:
id: quay.io/knuth/golang
username: $USERNAME
password: $PASSWORD
tag: beta
registry: quay.io
steps:
- script:
name: echo
code: echo "hello world!"
ドキュメントとは異なりますが、以下のようにyamlを書いても問題ありませんでした。個人的にはこちらの方がわかりやすい気がします。
box:
id: quay.io/knuth/golang
username: $USERNAME
password: $PASSWORD
tag: beta
registry: quay.io
build:
steps:
- script:
name: echo
code: echo "hello world!"
また、DockerHubのPrivate Repositoryの場合以下のようなyamlになります。DockerHubの場合registry
の指定は不要です。
build:
box:
id: guido/python
username: $USERNAME
password: $PASSWORD
tag: latest
steps:
- script:
name: echo
Werckerの環境変数に登録するusernameとpasswordを用意する
WerckerでPrivate Repositoryを使用するためには、usernameとpasswordが必要になるため、Quay.ioのRobot Accountsを作成し、そのusernameとpasswordをWerckerのWeb UIから登録します。
Robot Accountsの作成
Quay.ioにログインすると以下のような画面が開くので、左側のメニューから「Robot Accounts」を選択します。そして、右上の「Create Robot Account」をクリックしRobot名を入力してEnterを押します。これでRobot Accountが作成されます。
Robotのusernameとpasswordの取得
Robot Account Nameをクリックするとusernameとpasswordが表示されます。
Werckerへの登録
Werckerのドキュメントを参考に入力すればOKです。
http://devcenter.wercker.com/docs/environment-variables/creating-env-vars.html