タイトルの通り、CluodBeesのJenkinsを使ってsbtのScalaプロジェクトをGAEにデプロイする設定をしたときのメモ(初Jenkins)。
CloudBeesのアカウントを取る
http://www.cloudbees.com/ からサインアップ。
googleアカウント/githubアカウントが使えた。
ビルドサーバの起動時間に制限があるけど無料プラン有り。
よく分かってないけど、DEV@cloudっていうのがJenkinsとかgitとかのSaaSで、RUN@cloudっていうPaaSもあるっぽい。
CloudBees Jenkins for Google App Engineの登録
デフォルトだとGAE用のJenkins Plugin?が入って無いのでここから登録しないといけないっぽい。
https://appengine.cloudbees.com/index.html
GAEの管理権限のあるGoogleアカウントで認証。
To Jenkins!のボタンでJenkinsに戻れる。
※こちら→http://sboxsharp.blogspot.jp/2013/01/cloudbees-jenkins-for-google-app-engine.html# 参考にしました。
(レポジトリはgithubを使ったのでCloudBees上にはレポジトリ作らなかった)
sbtを使える様にセットアップ
Jenkins sbt pluginの追加
Builds > Jenkinsの管理 > プラグインの管理 からチェックしてインストールするだけ。
使いたいsbtのバージョンのsbt-launch.jarをWebDAVにアップロード
こちらを参考に→http://blog.shinichy.com/2013/07/cloudbees-devcloudjenkinssbt.html#
手順だけまとめると
- sbt-launch.jarをCloudBeesのWebDAVにアップロード
- Jenkinsのシステム設定でsbtのパスをアップロードしたやつに指定
- Jobの設定 > Build EnvironmentでPrivate WebDAVをマウントするようにチェック
sbtのプラグインsbt-appengineを使っている場合はAPPENGINE_SDK_HOME環境変数を指定
JenkinsのGAE Pluginで使われるSDKの場所は/opt/google/gae_java_sdk/1.8.latest
だったので Jenkinsの管理 > システムの設定 から環境変数を指定。
ビルドの設定
- sbtでpackageして、
- target/webapp/ をデプロイする様に設定
※app-idとversionはappengine-web.xmlに書かれているのを設定でオーバーライドできるので便利