Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hosted CI 大全 〜全 11 種の CI を実際に使って導き出された結論〜

Hosted CI 大全 〜全 11 種の CI を実際に使って導き出された結論〜

社内技術勉強会で発表した資料

842aaadff6e13fbf372c9b17b49b031c?s=128

Pine Mizune

August 18, 2015
Tweet

More Decks by Pine Mizune

Other Decks in Programming

Transcript

  1. Hosted CI 大全 Travis CI / Circle CI / AppVeyor

    / Wercker Shippable / Codeship / Semaphore Drone.io / Magnum CI / Snap CI / Vexor 水音ぴね
  2. Hosted CI 大全 1.  発表の目的 2.  CI とは ? 3. 

    紹介する CI のカバー範囲 4.  特筆すべき CI 紹介 5.  Perl x CI 事情 6.  まとめ 2
  3. 発表の目的 •  「 CI ? Jenkins のこと ? 」 ←

    会社でしか CI を使わない人 •  「 Travis でよくね ? 」 ← 思考停止の人 ターゲット層 伝えたいこと •  CI は星の数ほどある、not only Jenkins •  目的に応じて CI を選ぼう 3
  4. CI とは ? •  CI ... Continuous Integration –  日本語:

    継続的インテグレーション •  主にプログラマーのアプリケーション作成時の 品質改善 や 納期の短縮 のための習慣のこと •  狭義には ビルド や テスト、インスペクション など を継続的に実行していくことを意味する 参照: Wikipedia 『継続的インテグレーション』 4
  5. 紹介する CI のカバー範囲 5 自動ビルド・テスト 分析・レビュー ク ラ ウ ド

    自 前 ホ ス ト ドキュメント perldoc RDoc
  6. Hosted な CI 一覧 •  Travis CI •  Circle CI

    •  AppVeyor •  Wercker •  Shippable •  Codeship 6 •  Semaphore •  Drone.io •  Magnum CI •  Snap CI •  Vexor ※ 多いので全部は解説しません ※ 特に聞きたいモノがあれば質疑応答で
  7. 特筆すべき CI 紹介 •  Travis  CI   •  Circle  CI

      7 •  AppVeyor   •  Wercker  
  8. Travis CI 8 •  OSS 向けの老舗 CI –  Travis CI

    が無ければ、今の Web は無いレベル –  代表プロジェクト: jQuery, Ruby on Rails, Amon2, etc ... •  特徴 –  豊富な実績・ノウハウ –  Linux / Mac OS X 両対応 –  Build Matrix が組める –  有料版 高し (月 $129~)
  9. Circle CI 9 •  エンタープライズ向け CI –  日本企業でも比較的採用事例が多い –  「

    ライブラリ 」ではなく「 製品 」のビルドに向いている •  特徴 –  ロゴと挙動がかわいい –  コンテナ型 CI としては老舗 –  早くて高機能 –  安い (企業向け 月 $0~)
  10. AppVeyor 10 •  Windows を採用した唯一の CI –  Windows VM でビルドを実行

    –  .NET 系プロジェクトのビルドに特に向く •  特徴 –  Windows VM 採用 –  遅いし重いし遅すぎる –  クラウド型では対抗馬が居ない –  安い (企業向け 月 $19~)
  11. Wercker 11 •  Docker ベースの期待の新星 –  指定した Docker イメージでビルド – 

    完全に手元と同じ環境でテストが可能 •  特徴 –  Docker を全面に推した CI –  早い、軽い、拡張性が高い –  長期 β テスト中 (企業向け無料) –  今後の継続性に懸念あり
  12. Perl x Hosted CI 事情 12 •  公式サポート言語に含まれない事が多い –  perlbrew

    / plenv を使い自分でインストール –  cpanm / Carton で依存モジュール解決 •  キャッシュで高速化が可能 –  plenv ごとキャッシュに入れると良い –  Carton のインストール先は環境変数で切り替え •  ライブラリ開発なら Travis CI 一択
  13. [Perl x Hosted CI 事情] 標準サポート言語一覧 13 Travis    CI

    Circle    CI App   Veyor Wercker Ship   pable Code   ship Sema   phore Drone Magnum    CI Snap  CI Vexor Perl ◦ ◦ Ruby ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Python ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ PHP ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Node ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Java ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Scala ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Go ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
  14. まとめ •  CI は星の数ほどある –  not only Jenkis •  目的に合わせて

    CI を選ぼう –  その選択で、目的は達成されますか ? •  テストだけが CI じゃない 14
  15. Fin.