CircleCI 2.0 とは?
CircleCI 2.0 は Docker ベースの CI サービスで、現在 β 版として利用できます。
任意の Docker イメージを指定してビルド・テスト・デプロイができることが特徴です。
参考
- 2.0 Docs (Beta) - CircleCI (公式ドキュメント)
IBM Bluemix とは?
IBM が提供する PaaS です。Cloud Foundry をベースに構築されています。
Java、Ruby、PHP、Python、Node 等、メジャーな言語には一通り対応しています。
無期限の無料枠が用意されているため、開発環境としての利用や小さなサービス運営などが無料で行なえます。
参考
- クラウドサービスIBM Bluemixを無料で使うノウハウまとめ (Qiita)
CircleCI 2.0 から IBM Bluemix へデプロイする手法
公式で用意された Cloud Foundry のコンソールツール cf-cli を使います。
下記は Node.js で構築されたアプリケーションを、テストしデプロイする設定ファイル .circleci/config
です。
version: 2
jobs:
build:
working_directory: ~/workspace
docker:
- image: node:6.10.2
steps:
- checkout
- restore_cache:
key: project-{{ .Branch }}-{{ checksum "yarn.lock" }}
- run:
name: System information
command: |
echo "Node $(node -v)"
echo "Yarn v$(yarn --version)"
- run:
name: Install dependencies
command: yarn
- run:
name: Test
command: yarn test
- save_cache:
key: project-{{ .Branch }}-{{ checksum "yarn.lock" }}
paths:
- ~/workspace/node_modules
- ~/.cache/yarn/
- deploy:
name: Deploy to IBM Bluemix
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
apt-get update -qq
apt-get install -qq -y apt-transport-https
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | apt-key add -
echo "deb http://packages.cloudfoundry.org/debian stable main" | tee /etc/apt/sources.list.d/cloudfoundry-cli.list
apt-get update
apt-get install -qq -y cf-cli
cf -v
cf api https://api.au-syd.bluemix.net
cf login -u $BLUEMIX_USER -p $BLUEMIX_PASSWORD
cf push
fi
deploy フェーズで実行されているコマンドが部分が重要になります。今回は Ubuntu をベースにしたイメージなため、apt-get
にてインストールを行っています。
インストール後、下記 3 つの cf-cli コマンドを実行する必要があります。
# デプロイ先の指定
cf api https://api.au-syd.bluemix.net
# ログイン
cf login -u $BLUEMIX_USER -p $BLUEMIX_PASSWORD
# デプロイ実行
cf push
ログイン時の情報は、CircleCI の環境変数で事前に指定しておきます。環境変数の指定方法は、CircleCI 1.0 の時と変わりません。
まとめ
IBM Bluemix は CircleCI 2.0 から簡単にデプロイ可能です。また、他の Cloud Foundary ベースの PaaS に対しても、同様の手法が適応することができはずです。
IBM Bluemix は無料で試せるので、興味のある方はぜひ触ってみてください。