atskimura-memo

あまり仕事とは関係なく適当に書きます。開発ネタが多いかもしれません。

プライベートリポジトリ無料のCIサービス「Magnum CI」を使ってみた

CI(継続的インテグレーション)サービスまとめ・14個!では、BitBucketで使えるCIサービスを探していましたが、時が経てば事情は変わり、Githubのプライベートリポジトリで無料で使えるのが必要になったので、前に紹介した「Magnum CI」を試しました。
Magnum CIはプライベートリポジトリがいくつでもなぜか完全無料。Betaとも書いてないけど、アカウント設定にフリープランと記載があるので、将来的に有償プランをやる気はあるようです。

f:id:a_kimura:20140206170933j:plain

なお、今回はGithubのプライベートリポジトリを使いますが、Magnum CIはBitBucketでも使えます。それだけじゃなく、GitLabBeanstalk(知らない。AWSのではないらしい)、 自分で立てたgit, mercurial, subversionでも使えます。

今回対象とするプロジェクトはRailsアプリなんですが、以下のようにリポジトリはRailsアプリそのままではありません。リポジトリホームのサブディレクトリのrailsディレクトリがRAILS_HOMEです。
そのせいで設定が多くなってしまっています。普通のRailsアプリなら設定ファイルにほとんど何も書かなくていいです。

repo_home
├── xxx
├── yyy
└── rails

さて、設定していきましょう。

ログインして、プロジェクトを作成します。Rubyプロジェクトにしておきます。

f:id:a_kimura:20140305000008j:plain

初期セットアップのやり方が表示されます。
公開鍵を隠す必要はない気がするが、なんとなく。

f:id:a_kimura:20140305000103j:plain

web hookのURLとSSHの公開鍵が表示されるので、Githubに設定します。これでGithubにpushするとビルドが走ります。
キャプチャーはないけど、公開鍵もDeploy Keysに追加します。

f:id:a_kimura:20140305000404p:plain

ビルド設定に進みます。

f:id:a_kimura:20140305000725j:plain

ここにスクリプトを書くことも.magnum.ymlという設定ファイルに書いてgitに入れることもできます。
画面でスクリプトを書いて手動実行してちゃんと動くスクリプトを作ってから、.magnum.ymlに書いてpushするのがいいんじゃないかと思います。

.magnum.ymlはこんな感じ。
PostgreSQLの場合は、RAILS_ENV=testのときのユーザをpostgres、パスワードなしにしておけばrake db:createでDBが作成できます。
なお、普通のRailsアプリそのままのリポジトリだったらたぶん何も書かなくても自動で実行してくれます。(詳しくはこちら

ruby: 2.1.0

before_install:
  - cd rails

install:
  - bundle install --path=vendor/bundle

before_script:
  - bundle exec rake db:create
  - bundle exec rake db:migrate RAILS_ENV=test

script:
  - bundle exec rspec spec/

動いた動いた。通知はHipChatなどにも流せます。

f:id:a_kimura:20140305002552j:plain

一安心と思いきや、致命的な問題が。。。 ビルドログがネットに公開されてるやん!

自分たちのはもう消してしまいましたが、こんな感じに。コミットメッセージもダタ漏れ。 https://magnum-ci.com/public/8e6f82b13dc3c05f3e53/builds

Google検索にも普通にヒットしてしまう。

プライベートリポジトリで使いたいのにビルドログやコミットログが公開されちゃったら意味ないので、MagnumCIはボツ。
だから無料なのかもしれません。将来の有償プランではここを隠せるとか。


中の人に言ったら直してくれたので、追加の記事書きました↓

プライベートリポジトリ無料のCIサービス「Magnum CI」のログを非公開にできるようしてくれました - atskimura-memo


ということで次はもう一つの無料CIサービス「Shippable」を試してみましたので、また記事を書きます。

追記

続き書きました!(2014/03/05 22:14)

Githubのプライベートリポジトリ1つ無料のCIサービス「Shippable」を使ってみた

Magnum CIの中の人から連絡がありました(2014/03/07 9:50)

と言われましたので、勘違いかなともう一度確認してみました。

Githubのプライベートリポジトリです。

f:id:a_kimura:20140307101041j:plain

Magnum CIのビルドページです。右上に「Create Account」となっていてわかる通りログインしていない状態です。

f:id:a_kimura:20140307101120j:plain

やっぱり見えちゃうけどなあ。

Dropboxのリンクの共有みたいなものかとも思うけども、URLの再発行もできそうにないし、noindexもついてないしな。Google検索にひっかかるかはインデックスされるまで待ってないからわからないけど。

とりあえず返事をしよう。

直してくれました!(2014-03-11 20:28)

中の人が直してくれたので、追加記事を書いて、本文を修正しました。
プライベートリポジトリ無料のCIサービス「Magnum CI」のログを非公開にできるようしてくれました - atskimura-memo


Magnum CI