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

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

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

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

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. Hosted な CI 一覧 •  Travis CI •  Circle CI

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

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

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

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

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

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

    / plenv を使い自分でインストール –  cpanm / Carton で依存モジュール解決 •  キャッシュで高速化が可能 –  plenv ごとキャッシュに入れると良い –  Carton のインストール先は環境変数で切り替え •  ライブラリ開発なら Travis CI 一択
  12. [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 ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦
  13. まとめ •  CI は星の数ほどある –  not only Jenkis •  目的に合わせて

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