drone.ioを使って継続的にビルド & デプロイを行う(ssh編)
継続的インテグレーションなサービスとして、最近では drone.io を耳にすることがあります。
Continuous Integration · drone.io
drone.io は現時点では github, bitbucket, google codeと連携できます。
Free 版では public プロジェクトしか使えませんが、有料プランを選べば private プロジェクトが使用可能になったりConcurrentに動かせるようになったりするようです。
(private リポジトリが無制限に使える unlimited プランが現時点で ($ 49.00 / month) と、割と安価な印象?)
drone.io ではいくつかの環境への deploy も行えるようになっています。
今回は、ssh 経由で deploy を試してみました。
プロジェクトのセットアップ
New Project からリポジトリの選択、言語の選択を順次行っていきます。
ここまではボタンをポチポチ押すだけなので簡単です。
最後に、ビルドコマンドを記述します。
編集前には選んだ言語にあわせたひな形が記述されています。
これを各プロジェクトにあわせて修正します。
環境変数が必要な場合は、後から "Build & Tests"の"Environment Variables"に記述します。
言語によってはバージョンの指定が可能です。
余談:Status Badge
"Status Badges"に記載されているリンクをドキュメントに記述することで、(コードホスティングサイト側が対応しているのであれば)Status Badgeを表示させることができます。
GitHub + Travis CIなリポジトリでよく見るアレですね。
PNG Format と Markdown が用意されています。
Markdownを利用している方はドキュメントにそのまま貼り付けるだけです。
私はrstを使っているので、
.. image:: https://drone.io/hoge/pocketberserker/fuga/status.png
と記述してホスティングサイト上で表示させています。
sshでデプロイ
下記ページを読めばだいたいやるべきことがわかります。
- User ... デプロイ時に使用するユーザ名
- Host ... デプロイ先のホスト名(or IPアドレス)
- Remote Path ... プロジェクトのコピー先
- Remote Commands ... プロジェクトのコピー後に実行したいコマンド
- Branch(Option) ... どのブランチの時にデプロイを実行するか。何も記述しない場合はすべてのブランチを対象。コンマ区切りで複数指定。
試した環境
私は以下の構成で試しました。