マスタカネット > マスタカの ChangeLog メモ > 2015-01-25-1

マスタカの ChangeLog メモ / 2015-01-25-1

2015-01 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Prev /

2015-01-25

CircleCIを使ってbundle updateを定期実行するHerokuアプリを作った [CircleCI][Ruby][Heroku]

CircleCIを使ってbundle updateを定期実行する - Qiita

こちらの「1. CircleCIを起動する」のシェルスクリプトをRubyスクリプ
トにしてみました。Herokuボタンで簡単に設置できます。

https://github.com/masutaka/ci-bundle-update


◆ci-bundle-updateの解説

やっていることは単純で、build_parametersに{BUNDLE_UPDATE: true}を
指定して、CircleCIのビルドを実行しているだけです。BUNDLE_UPDATEは
後述するcircle.ymlで参照します。

Herokuボタンをクリックしたら、App NameやEnvを設定してください。

CIRCLECI_TOKEN Envは、CircleCIのProject Settings -> API
PermissionsからScopeがallなtokenを作成します。

EXEC_DAYS Envは実行する曜日です。Heroku Schedulerは実行間隔を
「Daily」「Hourly」「Every 10 minutes」からしか選べません。さすが
に毎日のbundle updateは必要ないので、「Daily」を選択しつつスクリプ
トの中でこの環境変数を参照するようにしました。

カンマ区切りで1つまたは複数の曜日を指定することが出来ます。指定が
なければ毎日CircleCIをビルドします。

Sun
Mon,Wed,Fri


あとはHeroku Schedulerを設定するだけで、CircleCIのビルドを自動実行
できます。

◆CircleCIの設定

前述の記事に書いてあるとおりですが、circle.ymlの中で、
BUNDLE_UPDATEがtrueの時だけ処理が切り替わるようにしました。

[2015-01-15-1]のcircle.ymlはこのように変わりました。



※ circle.ymlのpre,override,postはよく忘れるので、リンクを張ってお
きます。 https://circleci.com/docs/configuration

あとはここでGitHubのtokenを作成し、CircleCIのProject Setting ->
Environment variablesにGITHUB_ACCESS_TOKENという名前で追加するだけです。

◆まとめ

CircleCIを起動するRubyスクリプトを作成し、Heroku Buttonでインストー
ル可能にしました。bundle updateが必要な数だけHerokuアプリを作成し、
必要なくなったら捨てれば良いので、メンテナンスコストが少なく済みます。

追記(2015-01-25):
https://github.com/masutaka/ci-bundle-update 自体のbundle updateは
http://tachikoma.io を使うことにしました。外部サービス使えたら使う
に越したことはないですよね。


Prev /

2015-01 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

最終更新時間: 2015-01-25 23:05