雑記帳

ちょっとした文章とかメモ書きとか。

すごいcronとしてのJenkins

毎日ビルドなり、決まった時間にnightlyのバイナリをcurlでアクセスして取ってきたいなんて思った事はありませんか?

ありますよね。

そうなると*nix系の人ならcronを使う事になるのでしょうが、cronには親切なUIというものが付いてないですし、そもそもWindowsじゃ動きません。

そうなるとJenkinsの出番です。

Jenkinsとは一言で言うと親切なUIがくっ付いたスゴいcronです。
これを使わない手は有りませんね。

という事で、いくつか使ってみています。

使用例

一つ目:Mroongaのnightlyのバイナリを1ヶ月間分保存した上で決まった時間にアクセスして取りにいきたい。

そのジョブに使っているスクリプトはこちらです:https://github.com/cosmo0920/curl-daily-job-for-mroonga

その他、Jenkinsの定時に実行する設定が必要です。

二つ目:OSXまたはLinuxで”cabal install yesod yesod-bin”を実行して正常終了するか見たい。

そのジョブに使っているスクリプトはこちらです:https://github.com/cosmo0920/haskell-install-check-CI

こちらはOSXでは直接

cabal sandbox init

した後に、

cabal install yesod yesod-bin

しています。
が、Jenkinsを立てた時期とマシン事情によって、Linux向けの”cabal install yesod yesod-bin”のジョブにはDockerを使っています。

CIが失敗したときのDockerコンテナの残骸はどうやって処理しているんでしょうかね。気づいた時に手動で

docker rm `docker ps -a -q`
docker images | grep "<none>" | awk '{print $3}' | xargs docker rmi

な感じで削除しています。

三つ目:Jenkinsのslaveを立ててmasterとは異なるOSでのCIを行いたい

それに使っているスクリプトはこちらです:https://github.com/cosmo0920/PowerShell-for-Mroonga-building

WindowsのJenkins slaveを立てるにはJenkins slave agentをJNLP経由で接続すると楽です!

また、WindowsでのCIを行う際にはpowershell pluginを使うとpowershellでJenkinsのCIが行えるようになるのでCIが楽しくなります。

色々なJenkinsの使い方を試してみるとCIが楽しくなるかもしれません。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。