OpenShiftでは、Gearを作成すると、デフォルトでGitのrepositoryを作ってくれるので、ソース管理はとても簡単です。
今回は、既にGitHubで管理してるコードをOpenShiftにデプロイしたいなぁと。
以下のStackOverflowに色々情報が詰まってる感じ。
stackoverflow.com
せっかくなのでCI使ってローカルコミット->プッシュ->ビルド->デプロイができれば嬉しいなぁと思いはじめ、CIも一緒に試すことにしました。
Jenkins
OpenShiftでは構築したGearをCIしてくれるJenkinsを簡単に作れますが、Gearを1つ使ってしまうので、無償枠で遊んでる分にはちょっとなぁ、と。
Circle CI
そういえば今までWebサービスのCI使ったことないので、せっかくなのでCircleCIを試してみました。
GitHubとの連携は超簡単なので、すぐビルドはできましたが、OpenShiftへのデプロイ方法がわからず。。。調べた所、頑張ればできそうだけど。。。みたいな。
Travis CI
ぬあー、と悩んでたところ以下@grimroseのエントリを発見!簡単そう。
grimrose.bitbucket.org
試したところ、簡単でした(^^;
上記のエントリには「ユーザ名とパスワードをtravisに設定するところが気になるところですが」という記述がありましたが、パスワードは簡単に暗号化できる仕組みが用意されていました。
Encryption keys - Travis CI
gem install travis
でTravis CLIを入れます。
このあとは以下のページが役立ちます。
OpenShift Deployment - Travis CI
デプロイ対象のプロジェクトに空の.travis.ymlを置いて、以下コマンドを実行すると
travis setup openshift
対話式にopenshiftの情報を聞かれて、中身を自動生成してくれます。
最初.travis.ymlごと生成してくれるのかなーと思ったのですが、以下エラーでした。
C:\Users\kikuta\Documents\NetBeansProjects\xxxxxxxxxx>travis setup openshift
no .travis.yml found
C:\Users\kikuta\Documents\NetBeansProjects\xxxxxxxxxx>travis setup openshift
OpenShift user: [email protected]
OpenShift password: ********
OpenShift application name: |xxxxxxxxxx|
OpenShift domain: hogehoge
Deploy only from hogehoge/xxxxxxxxxx? |yes| yes
Encrypt Password? |yes| yes
これで.travis.ymlはOK。あとはGitHubのコード側でpom.xmlにopenshiftのプロファイル入れたり、.openshiftフォルダを入れるなどすれば自動化完了です。