アプリケーション実装編の続き
今回CloudBeesのサービスを使いました。VCSにGithubを使っている以外は全部CloudBees上のサービスを使わせてもらってます。*1
Grails Wrapperを作成
CloudBeesのJenkinsサービスは、Grailsがインストールされていないので、Grails Wrapperを作っておきます*2
以下のGrailsコマンドを打ちます
grails wrapper
GitHubにソースをコミット
アプリケーション実装編で作ったアプリのコードとGrails WrapperをGitHubに上げます。
kamatama41/sfc-bot · GitHub
新規のアプリケーションを登録する
CloudBeesにユーザー登録後、AppsメニューからAdd New Applicationを選択して、アプリ登録します。
Jenkinsのジョブを設定する
Buildsメニューから、Jenkinsのページ行けるので、新規Jobを[フリースタイルのビルド]で作成しておきます。
今回の名前はアプリ名と同じ「sfc-bot」にします。
次にジョブの変更を行います。設定する箇所はそんなにありません。
Application Configを設定する
外部化したTwitterAPIのキー情報を取得するために、本番環境にConfig情報を設定します。
設定のためにはCloudBees SDKを利用します。
config設定コマンド実行
以下のコマンドでAppilicationにConfig情報を設定できます。設定したConfig情報はアプリ上ではSystem.getProperty(key)で取得できます。
bees config:set -a sfc-bot TWITTER_CONSUMER_KEY=xxxxxxxxxx bees config:set -a sfc-bot TWITTER_CONSUMER_SECRET=xxxxxxxxxx bees config:set -a sfc-bot TWITTER_TOKEN=xxxxxxxxxx bees config:set -a sfc-bot TWITTER_TOKEN_SECRET=xxxxxxxxxx
ビルド実行
さっき設定したジョブを実行します。成功したらデプロイ完了です。
http://sfc-bot.kamatama.cloudbees.net/
にアクセスして画面が出ることを確認します。
CloudBeesのAppsメニューから対象のアプリを選択して、Logsから標準出力のログを見てエラーが発生していないことも確認しておきます。*4
自分用メモ
- Config情報の設定はJenkinsでもできるっぽい。 [ビルド後の処理]->[Applications]->[高度な設定]
- Tomcat6とjboss7.0以外のコンテナでデプロイするためにはJenkinsのプラグインは使えない?
- bees app:deploy -a myapp -t tomcat7 hoge.war みたいな感じでSDK経由でデプロイする必要がありそう
- https://developer.cloudbees.com/bin/view/RUN/ClickStack