Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
はじめての
2015-08-04 . Demand Side Science 社内勉強会 . Yosuke Mizutani
Circle CI とは
はじめてのビルド
ビルドのカスタマイズ
DEMO
Agenda
https://circleci.com
https://circleci.com
GitHub の OAuth認証をするだけ
組織の単位は

GitHub 上の Organization に従う
サインアップ
https://ja.wikipedia.org/wiki/継続的インテグレーション
CI とは
継続的インテグレーション、CI(英: continuous integration)とは、主にプ
ログラマーのアプリケーション作成時の品質改善や納...
近年、低価格 & 高品質の

SaaS (Software as a Service) 型 CIサービス
が続々登場
OSS 開発者・GitHub ユーザを中心に

Jenkins から乗り換えの流れ
今回は、主に Scala プロジェクトに対...
http://stackshare.io/continuous-integration
1. Jenkins
2. Travis CI
3. Codeship
4. CircleCI
5. TeamCity
6. wercker
7. Dron...
http://qiita.com/search
2015-08-01現在
No. ツール・サービス ヒット数
1 Jenkins 1049
2 Travis CI 414
3 CircleCI 172
4 wercker 83
5 Drone....
以下のサービスを比較
Travis CI
Codeship
CircleCI

いずれも基本的な機能は兼ね備えている
GitHub 連携
Scala (sbt) のサポート (wercker はやや不十分)
LXC (コンテナ型) 実行環境
ビ...
https://travis-ci.org/
ユーザ数最大の最古参CIサービス

(12万∼ユーザ、20万∼OSSリポジトリ)
複数のマシン環境・言語バージョンでの

ビルドを標準でサポート
設定ファイル「.travis.yml」の記述が必要
Travis CI の特徴
OSS は無料
プライベートリポジトリは同時実行数課金
Travis CI の料金
https://codeship.com/
Bitbucket サポート
ビルド環境がハイスペック
並列テスト可能
SSH ログイン可能
Docker 対応可
OSS でもビルドログが非公開
設定は全て WebUI で行う
Codeship の特徴
OSS は無料
プライベートリポジトリは

5 プロジェクト、100 ビルド/月 まで無料
個人アカウント: $49/月
プライベートリポジトリ無制限
同時実行数: 1
並列テスト: 2
Organization は異なる料金体系 (次頁)
C...
Codeship の料金
https://circleci.com
並列テスト可能
SSH ログイン可能
Docker 対応可
外部サービスとの連携が充実
成果物の保存やデプロイ向け機能も充実
ユーザーサポートが手厚い (英語)
日本語の情報も多い
CircleCI の特徴
コンテナ数課金
コンテナ数 = 並列度 × 同時実行数
OSS は 4 コンテナまで無料
プライベートリポジトリは 1 コンテナ無料
1コンテナ追加するごとに $50/月
Enterprise 契約も可能
CircleCI の料金
Organization アカウントのプライベートリポジトリを使う前提
料金は全て月額
料金比較
サービス名
本社

所在地
同時実行数 並列

テスト1 2 4 8
Travis CI ドイツ $129 $129 $249 $489 -
Co...
Scala プロジェクトのビルド時間を比較
使用したリポジトリはこちら
https://github.com/mogproject/example-scalacheck
測定結果
単位は「分:秒」
括弧内の時間はコンパイルおよびテストに費した時...
Codeship を使いましょう
おわり
まとめ
無料でプライベートリポジトリを

使い倒すなら CircleCI

OSS なら Travis CI が安定

コンパイルが遅い Scala のような言語は

Codeship vs CircleCI を検討
"CircleCI vs Code...
Circle CI とは
はじめてのビルド
ビルドのカスタマイズ
DEMO
Agenda
CircleCI の話題に戻ります
https://circleci.com からログイン
ログイン
プロジェクトの作成
最初のビルド
デフォルトのビルド環境
リポジトリ直下に「circle.yml」が存在しない場合、
デフォルトの環境設定でビルドが実行される

使用言語は CircleCI によって自動的に判定
sbt プロジェクトの場合は

project/build.pr...
デフォルトのビルド環境
アーキテクチャー: x86_64
OS: Ubuntu 12.04 (precise)
Java: Oracle JDK 7

データベース・サービス
デフォルトで起動
couchdb (1.3.0)
memcached...
デフォルトのビルド環境
MySQL, PostgreSQL では以下のデータベースを使用可能
データベース名: circle_test
ユーザ: ubuntu
パスワード: なし
主な環境変数は以下
HOME=/home/ubuntu
LANG...
sbt プロジェクトのビルドの流れ
コンテナ起動
デバッグ用SSHポートの有効化
キャッシュの復元 (S3 からダウンロード)
GitHub からコードをチェックアウト
sbt test:compile
キャッシュの保存 (S3 へアップロード...
通知設定 (メール)
WebUI から個人で設定
通知設定 (Slack / HipChat)
WebUI からプロジェクト単位で設定
通知設定 (Slack / HipChat)
SSH を利用したデバッグ
SSH を利用したデバッグ
表示されるアドレス・ポートに SSH でログイン可能
GitHub に接続可能な SSH が必要
ssh git@github.com でチェック
ビルド完了後、30分経過するとコンテナは停止
SSH を利用したデバッグ
SSH 接続例
コンテナが複数起動している場合は

ssh node0, ssh node1, …

で他のコンテナに直接アクセス可能
$ ssh -p 64758 ubuntu@54.146.12.94
The a...
ステータスバッジの追加
Project Settings -> Notifications -> Status Badges
Circle CI とは
はじめてのビルド
ビルドのカスタマイズ
DEMO
Agenda
ビルドのカスタマイズ
WebUI
circle.yml
リポジトリ直下に置く YAML形式のファイル

"Configuring CircleCI - CircleCI"

- https://circleci.com/docs/configura...
キャッシュディレクトリの追加
「~/.ivy2」など一般的なビルドツールのディレクトリは

デフォルトでキャッシュ対象になっている。

Scala プロジェクトの場合

「~/.sbt/boot/scala-${SCALA_VERSION}」
...
環境変数のカスタマイズ
machine:
environment:
foo: bar
baz: 123
環境変数のカスタマイズ
リポジトリに置きたくない環境変数は WebUI で設定
Project Settings -> Tweaks -> Environment variables
同じ変数が circle.yml にもあれば、circle....
タイムゾーンのカスタマイズ
machine:
timezone: Asia/Tokyo
JDK のカスタマイズ
以下から選択可能
oraclejdk8
oraclejdk7 (デフォルト)
oraclejdk6
openjdk7
openjdk6
machine:
java:
version: openjdk7
データベースのスキーマ設定
database:
override:
- mysql -u ubuntu circle_test < path/to/setup.sql
スキーマのロード・テスト用データの投入は

database.overrid...
データベースのスキーマ設定
MySQL Workbench から DDL を出力する場合は

スキーマ修飾子を含めないように注意
ソフトウェアのインストール
dependencies:
pre:
# Install td-agent
- curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-precise....
ソフトウェアのインストール
dependencies:
pre:
- sudo apt-add-repository -y 'deb
http://ppa.launchpad.net/ondrej/mysql-experimental/ubun...
ブランチを CI 対象外にする
デフォルトでは、全てのブランチがビルド対象
general.branches.ignore でブラックリストを指定

(正規表現もOK)
ホワイトリスト指定もできるが、非推奨
general:
branches:...
コミットを CI 対象外にする
直近のコミットメッセージ (head commit) に文字列
[ci skip] が含まれていれば、ビルドは実行されない

"Skip a build - CircleCI"

- https://circle...
その他のトピック
成果物の保存
"Build artifacts - CircleCI" - https://circleci.com/docs/build-artifacts

コードカバレッジの取得
"Generating code cov...
Circle CI とは
はじめてのビルド
ビルドのカスタマイズ
DEMO
Agenda
DEMO
プライベートリポジトリのビルドを追加
HipChat 連携
コンテナに SSH で接続
「circle.yml」を準備したブランチを push
カスタムインストールの実行確認
DSS版 CircleCI 利用心得
Don't ignore errors
失敗するテストは絶対に放置しない
テストコードは常に見直せ
Keep it Small
サイズの大きいファイルは置かない
使わないブランチは問答無用で削除
Keep ...
"Continuous Integration and Deployment -
CircleCI"

- https://circleci.com/

"Getting Started - CircleCI"

- https://circl...
Upcoming SlideShare
Loading in …5
×

はじめての CircleCI

45,062 views

Published on

2015-08-04 Demand Side Science 社内勉強会

Published in: Engineering
  • Be the first to comment

はじめての CircleCI

  1. 1. はじめての 2015-08-04 . Demand Side Science 社内勉強会 . Yosuke Mizutani
  2. 2. Circle CI とは はじめてのビルド ビルドのカスタマイズ DEMO Agenda
  3. 3. https://circleci.com
  4. 4. https://circleci.com
  5. 5. GitHub の OAuth認証をするだけ 組織の単位は
 GitHub 上の Organization に従う サインアップ
  6. 6. https://ja.wikipedia.org/wiki/継続的インテグレーション CI とは 継続的インテグレーション、CI(英: continuous integration)とは、主にプ ログラマーのアプリケーション作成時の品質改善や納期の短縮のための習慣 のことである。エクストリーム・プログラミング (XP) のプラクティスの一 つで、狭義にはビルドやテスト、インスペクションなどを継続的に実行して いくことを意味する。特に、1990年代後半以降の開発においては、継続的 インテグレーションをサポートするソフトウェアを使用する傾向が強まって きた。
  7. 7. 近年、低価格 & 高品質の
 SaaS (Software as a Service) 型 CIサービス が続々登場 OSS 開発者・GitHub ユーザを中心に
 Jenkins から乗り換えの流れ 今回は、主に Scala プロジェクトに対する
 ビルド + テストの継続的実行にフォーカス SaaS型 CIサービス
  8. 8. http://stackshare.io/continuous-integration 1. Jenkins 2. Travis CI 3. Codeship 4. CircleCI 5. TeamCity 6. wercker 7. Drone.io 8. Semaphore 9. Shippable 10. Solano CI 11. Appveyer 12. Buildkite 13. Go.CD 14. Test Kitchen 15. Strider 16. Magnum CI 17. Snap CI 18. Buildbot 19. Testling 20. DotCI 2015-08-01現在 今後、ブレイクの予感? 投資家
 評価高い
  9. 9. http://qiita.com/search 2015-08-01現在 No. ツール・サービス ヒット数 1 Jenkins 1049 2 Travis CI 414 3 CircleCI 172 4 wercker 83 5 Drone.io 52 6 Codeship 7
  10. 10. 以下のサービスを比較 Travis CI Codeship CircleCI
 いずれも基本的な機能は兼ね備えている GitHub 連携 Scala (sbt) のサポート (wercker はやや不十分) LXC (コンテナ型) 実行環境 ビルド前後に任意のコマンドを実行可能 (sudo可) 各種主要データベースがセットアップ済み ビルド時間制限なし (一部、個別要件あり) CI サービスの比較
  11. 11. https://travis-ci.org/
  12. 12. ユーザ数最大の最古参CIサービス
 (12万∼ユーザ、20万∼OSSリポジトリ) 複数のマシン環境・言語バージョンでの
 ビルドを標準でサポート 設定ファイル「.travis.yml」の記述が必要 Travis CI の特徴
  13. 13. OSS は無料 プライベートリポジトリは同時実行数課金 Travis CI の料金
  14. 14. https://codeship.com/
  15. 15. Bitbucket サポート ビルド環境がハイスペック 並列テスト可能 SSH ログイン可能 Docker 対応可 OSS でもビルドログが非公開 設定は全て WebUI で行う Codeship の特徴
  16. 16. OSS は無料 プライベートリポジトリは
 5 プロジェクト、100 ビルド/月 まで無料 個人アカウント: $49/月 プライベートリポジトリ無制限 同時実行数: 1 並列テスト: 2 Organization は異なる料金体系 (次頁) Codeship の料金
  17. 17. Codeship の料金
  18. 18. https://circleci.com
  19. 19. 並列テスト可能 SSH ログイン可能 Docker 対応可 外部サービスとの連携が充実 成果物の保存やデプロイ向け機能も充実 ユーザーサポートが手厚い (英語) 日本語の情報も多い CircleCI の特徴
  20. 20. コンテナ数課金 コンテナ数 = 並列度 × 同時実行数 OSS は 4 コンテナまで無料 プライベートリポジトリは 1 コンテナ無料 1コンテナ追加するごとに $50/月 Enterprise 契約も可能 CircleCI の料金
  21. 21. Organization アカウントのプライベートリポジトリを使う前提 料金は全て月額 料金比較 サービス名 本社
 所在地 同時実行数 並列
 テスト1 2 4 8 Travis CI ドイツ $129 $129 $249 $489 - Codeship アメリカ $99 $99 $299 $999 ○ CircleCI アメリカ Free $50 $150 $350 ○ wercker (β版) オランダ Free Free - - - Drone.io アメリカ $99 $99 $199 $399 - Semaphore セルビア $99 $99 $199 問い合わせ - Shippable アメリカ Free $10 $30 $70 - Solano CI アメリカ $50∼ (稼働時間課金) ○ Snap CI アメリカ $80 $80 $180 問い合わせ ○ 2015-08-04現在
  22. 22. Scala プロジェクトのビルド時間を比較 使用したリポジトリはこちら https://github.com/mogproject/example-scalacheck 測定結果 単位は「分:秒」 括弧内の時間はコンパイルおよびテストに費した時間 性能比較 sbt キャッシュ Travis CI Codeship CircleCI (*) なし 1:36 (1:09) 0:37
 (0:29) 1:44 (1:27) あり 1:00 (0:28) 0:32
 (0:19) 1:10 (0:42) * テストコード自体が少ないせいか、並列度が 1 でも 4 でも結果変わらず
  23. 23. Codeship を使いましょう おわり まとめ
  24. 24. 無料でプライベートリポジトリを
 使い倒すなら CircleCI
 OSS なら Travis CI が安定
 コンパイルが遅い Scala のような言語は
 Codeship vs CircleCI を検討 "CircleCI vs CodeshipCI - Qiita"
 - http://qiita.com/blueplanet/items/a9e5b93797d4c171619a コンパイル処理がボトルネックなら、並列度を上げても解決しないかも 雑感
  25. 25. Circle CI とは はじめてのビルド ビルドのカスタマイズ DEMO Agenda
  26. 26. CircleCI の話題に戻ります https://circleci.com からログイン ログイン
  27. 27. プロジェクトの作成
  28. 28. 最初のビルド
  29. 29. デフォルトのビルド環境 リポジトリ直下に「circle.yml」が存在しない場合、 デフォルトの環境設定でビルドが実行される
 使用言語は CircleCI によって自動的に判定 sbt プロジェクトの場合は
 project/build.properties に記述したバージョンの sbt が使われる
 "Test environment - CircleCI"
 - https://circleci.com/docs/environment
  30. 30. デフォルトのビルド環境 アーキテクチャー: x86_64 OS: Ubuntu 12.04 (precise) Java: Oracle JDK 7
 データベース・サービス デフォルトで起動 couchdb (1.3.0) memcached (1.4.13) mongodb (2.4.13) mysql (5.5.41) postgresql (9.4 with postgis 2.0 extensions) rabbitmq (3.4.4) redis (3.0.2) zookeeper (3.3.5) 利用可能 beanstalkd (1.4.6) cassandra (2.1.3) couchbase-server (2.0.0) elasticsearch (0.90.2) neo4j (2.2.2) riak (1.4.8-1) solr (4.3.1) sphinx (2.0.4-release)
  31. 31. デフォルトのビルド環境 MySQL, PostgreSQL では以下のデータベースを使用可能 データベース名: circle_test ユーザ: ubuntu パスワード: なし 主な環境変数は以下 HOME=/home/ubuntu LANG=en_US.UTF-8 PATH: /home/ubuntu/bin を含む 最初のビルドの後は、GitHub にコミットが push される
 たびに CircleCI でもビルドが実行される
  32. 32. sbt プロジェクトのビルドの流れ コンテナ起動 デバッグ用SSHポートの有効化 キャッシュの復元 (S3 からダウンロード) GitHub からコードをチェックアウト sbt test:compile キャッシュの保存 (S3 へアップロード) sbt test:test JUnit などのメタデータの収集 成果物(アーティファクト)の収集 コンテナ停止
  33. 33. 通知設定 (メール) WebUI から個人で設定
  34. 34. 通知設定 (Slack / HipChat) WebUI からプロジェクト単位で設定
  35. 35. 通知設定 (Slack / HipChat)
  36. 36. SSH を利用したデバッグ
  37. 37. SSH を利用したデバッグ 表示されるアドレス・ポートに SSH でログイン可能 GitHub に接続可能な SSH が必要 ssh git@github.com でチェック ビルド完了後、30分経過するとコンテナは停止
  38. 38. SSH を利用したデバッグ SSH 接続例 コンテナが複数起動している場合は
 ssh node0, ssh node1, …
 で他のコンテナに直接アクセス可能 $ ssh -p 64758 ubuntu@54.146.12.94 The authenticity of host '[54.146.12.94]:64758 ([54.146.12.94]:64758)' can't be established. RSA key fingerprint is 5a:43:6d:7d:cb:a0:e6:26:cf:a3:fd:e6:8d:16:5f:3c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[54.146.12.94]:64758' (RSA) to the list of known hosts. Last login: Sat Aug 1 13:46:33 2015 from 10.155.246.48 ubuntu@box1234:~$ ssh node2 Warning: Permanently added '[54.159.70.222]:64646' (ECDSA) to the list of known hosts. Last login: Sat Aug 1 13:46:46 2015 from 10.155.246.48 ubuntu@box952:~$
  39. 39. ステータスバッジの追加 Project Settings -> Notifications -> Status Badges
  40. 40. Circle CI とは はじめてのビルド ビルドのカスタマイズ DEMO Agenda
  41. 41. ビルドのカスタマイズ WebUI circle.yml リポジトリ直下に置く YAML形式のファイル
 "Configuring CircleCI - CircleCI"
 - https://circleci.com/docs/configuration "Sample circle.yml file - CircleCI"
 - https://circleci.com/docs/config-sample
  42. 42. キャッシュディレクトリの追加 「~/.ivy2」など一般的なビルドツールのディレクトリは
 デフォルトでキャッシュ対象になっている。
 Scala プロジェクトの場合
 「~/.sbt/boot/scala-${SCALA_VERSION}」
 だけをキャッシュ対象にするのが望ましいが
 Travis CI とは異なり、Scala のバージョンが環境変数に
 入っていない。どうしたら良いものか。 dependencies: cache_directories: - "~/.sbt"
  43. 43. 環境変数のカスタマイズ machine: environment: foo: bar baz: 123
  44. 44. 環境変数のカスタマイズ リポジトリに置きたくない環境変数は WebUI で設定 Project Settings -> Tweaks -> Environment variables 同じ変数が circle.yml にもあれば、circle.yml 優先
  45. 45. タイムゾーンのカスタマイズ machine: timezone: Asia/Tokyo
  46. 46. JDK のカスタマイズ 以下から選択可能 oraclejdk8 oraclejdk7 (デフォルト) oraclejdk6 openjdk7 openjdk6 machine: java: version: openjdk7
  47. 47. データベースのスキーマ設定 database: override: - mysql -u ubuntu circle_test < path/to/setup.sql スキーマのロード・テスト用データの投入は
 database.override にコマンドを記述して実現 接続ユーザ、データベース名は固定 アプリに対しては環境変数で指定するとよい machine: environment: MY_APP_DB_URL: 'jdbc:mysql://localhost:3306/circle_test' MY_APP_USER: 'ubuntu' MY_APP_DB_PASS: ''
  48. 48. データベースのスキーマ設定 MySQL Workbench から DDL を出力する場合は
 スキーマ修飾子を含めないように注意
  49. 49. ソフトウェアのインストール dependencies: pre: # Install td-agent - curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-precise.sh | sh - sudo cp -f circle/td-agent.conf /etc/td-agent/td-agent.conf - sudo /etc/init.d/td-agent stop - sudo /etc/init.d/td-agent start dependencies.pre にコマンドを順に記述 もしくはインストール用シェルを準備して、そのパスを記述 td-agent をインストールする例 <source> type forward port 24224 bind 0.0.0.0 </source> <match **> type stdout </match> circle.yml circle/td-agent.conf
  50. 50. ソフトウェアのインストール dependencies: pre: - sudo apt-add-repository -y 'deb http://ppa.launchpad.net/ondrej/mysql-experimental/ubuntu precise main' - sudo apt-get update; sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server-5.6 MySQL 5.6 をインストールする例 デフォルトでインストールされているのは 5.5 circle.yml 前述の「キャッシュディレクトリ」を適切に追加して
 不必要なダウンロードやコンパイルを避ける工夫も大切
  51. 51. ブランチを CI 対象外にする デフォルトでは、全てのブランチがビルド対象 general.branches.ignore でブラックリストを指定
 (正規表現もOK) ホワイトリスト指定もできるが、非推奨 general: branches: ignore: - gh-pages # list of branches to ignore - /release/.*/ # or ignore regexes general: branches: only: - master # list of branches to build - /feature-.*/ # or regexes
  52. 52. コミットを CI 対象外にする 直近のコミットメッセージ (head commit) に文字列 [ci skip] が含まれていれば、ビルドは実行されない
 "Skip a build - CircleCI"
 - https://circleci.com/docs/skip-a-build $ git log origin/master..HEAD commit 63ce74221ff899955dd6258020d6cb9accede893 Author: Daniel Woelfel <daniel@circleci.com> Date: Wed Jan 23 16:48:25 2013 -0800 fix misspelling [ci skip] commit 463147193b2fe561cfb12a9787434dd726390fcd Author: Daniel Woelfel <daniel@circleci.com> Date: Wed Jan 23 16:30:24 2013 -0800 add "Skip a build" doc
  53. 53. その他のトピック 成果物の保存 "Build artifacts - CircleCI" - https://circleci.com/docs/build-artifacts
 コードカバレッジの取得 "Generating code coverage metrics - CircleCI"
 - https://circleci.com/docs/code-coverage
 Docker 連携 "Continuous Integration and Delivery with Docker - CircleCI"
 - https://circleci.com/docs/docker
 REST API "CircleCI REST API - CircleCI" - https://circleci.com/docs/api
 継続的デプロイ "Continuous Deployment with Heroku - CircleCI"
 - https://circleci.com/docs/continuous-deployment-with-heroku
 "Continuous Deployment with AWS CodeDeploy - CircleCI"
 - https://circleci.com/docs/continuous-deployment-with-aws-codedeploy
  54. 54. Circle CI とは はじめてのビルド ビルドのカスタマイズ DEMO Agenda
  55. 55. DEMO プライベートリポジトリのビルドを追加 HipChat 連携 コンテナに SSH で接続 「circle.yml」を準備したブランチを push カスタムインストールの実行確認
  56. 56. DSS版 CircleCI 利用心得 Don't ignore errors 失敗するテストは絶対に放置しない テストコードは常に見直せ Keep it Small サイズの大きいファイルは置かない 使わないブランチは問答無用で削除 Keep it Short そのライブラリ、本当に必要? Specs2 よりも ScalaTest [ci skip] を活用
  57. 57. "Continuous Integration and Deployment - CircleCI"
 - https://circleci.com/
 "Getting Started - CircleCI"
 - https://circleci.com/docs/gettingstarted
 "継続的インテグレーション - Wikipedia"
 - https://ja.wikipedia.org/wiki/継続的インテグ レーション
 "Discover and discuss the best dev tools and cloud infrastructure services | StackShare"
 - http://stackshare.io/
 "Continuous Integration | StackShare"
 - http://stackshare.io/continuous-integration
 "Home - Qiita"
 - http://qiita.com/
 "Travis CI - Test and Deploy Your Code with Confidence"
 - https://travis-ci.org/
 "Travis CI: Continuous Integration and Deployment That Just Works"
 - https://travis-ci.com/plans
 "Continuous Delivery with Codeship: Fast, secure and fully customizable."
 - https://codeship.com/
 "Codeship Organization Pricing: Starting at $99"
 - https://codeship.com/pricing-organizations
 "Wercker - automation driven development"
 - http://wercker.com/
 "Continuous Integration · drone.io"
 - https://drone.io/
 "Semaphore - Continuous Integration & Deployment"
 - https://semaphoreci.com/
 "Continuous Integration with Docker | Shippable"
 - https://app.shippable.com/
 "Solano Labs | Continuous Integration and Deployment"
 - https://www.solanolabs.com/home
 "Continuous Integration that Lives and Works in the Cloud | Snap CI by ThoughtWorks"
 - https://snap-ci.com/
 "CIツールのまとめとSide CI - CIツール勉強会@福 岡"
 - http://www.slideshare.net/SumiKoichiro/ci- continuous-integration-servicematome
 "CircleCI vs CodeshipCI - Qiita"
 - http://qiita.com/blueplanet/items/ a9e5b93797d4c171619a
 "CircleCI導入したのでwerckerとの比較も含めてま とめ - 月曜日までに考えておきます"
 - http://ryonext.hatenablog.com/entry/2014/05/ 20/093828
 "CircleCI で Playframework のプロジェクトを回そ うとしたら OOM Killer に殺される件 - Qiita"
 - http://qiita.com/kawachi/items/ 4d4c56fa0f14c57cb220
 "Circle Ciでlocalhostへ設定してあるfluentdを使用 する方法とcircle.yml - DRY"
 - http://k16.hatenablog.jp/entry/2014/08/27/ 163243
 "CircleCIの便利な機能 - Qiita"
 - http://qiita.com/mzp/items/ bba3f378e555e1ed586d "ScalaプロジェクトをCircleCIでビルド+テストし て、scoverageで計測したカバレッジを COVERALLSに送るための諸設定をした - TODESKING"
 - http://www.todesking.com/blog/2014-11-18- scala-with-circleci-and-coveralls/
 "CircleCIアンチパターン 2015春 - tehepero note(・ω<)"
 - http://stormcat.hatenablog.com/entry/2015/ 03/31/154300
 "# 継続的インテグレーションでやってはいけない こと - @numa08 猫耳帽子の女の子"
 - http://numa08.hateblo.jp/entry/2014/11/07/ 214314 "大体いい感じになるKeynoteテンプレート 「Azusa」作った - MEMOGRAPHIX"
 - http://memo.sanographix.net/post/ 82160791768 参考文献

×