Digdag で CI ジョブを定義する

D84f970274539b7370446857459bdd8c?s=47 foostan
October 18, 2016

Digdag で CI ジョブを定義する

D84f970274539b7370446857459bdd8c?s=128

foostan

October 18, 2016
Tweet

Transcript

  1. Digdag で CI ジョブを定義する 五反田.rb#10(テスト(rspec/minitest)について)

  2. None
  3. 本日お話すること • Jenkins + Digdag で 脱Jenkinsおじさん • CI のジョブを

    Digdag で定義するメリットとデメリット
  4. @foostan Kosuke Adachi

  5. スモールビジネスに携わる方が より創造的な活動にフォーカスできるように

  6. スモールビジネスに携わる方が より創造的な活動にフォーカスできるように

  7. Jenkins おじさん • Jenkinsは自由度が高くてジョブの編集も簡単 • でも気づいたらカオスな状態になってきて管理す る人が必要になる • ジョブを編集したいと思ったらその人に許可取っ てWeb上から直接ジョブを書き換えると…

    つらい
  8. 脱 Jenkins おじさん ① ジョブを Git で管理 • Jenkinsの手軽さをあえてなくす •

    GitHubでレビューしてもらう体制を整える • 問題が起きたときに原因を特定できるようにする、戻せるよう にする ↓ カオスなジョブになりにくい環境が整う
  9. 脱 Jenkins おじさん ② ジョブを Digdag で定義する • Digdag: ◦

    Treasure Data のプロダクト ◦ シェルスクリプト、Phyton、Ruby でタスクを定義して、 yaml(正しくはyamlを拡張したもの)で定義したフローで実 行するもの
  10. None
  11. テスト準備

  12. jsファイルの更新があれ ばフロントエンドのテスト を実行

  13. rbファイルの更新があ ればバックエンドのテス トを実行

  14. テスト準備

  15. rubocop実行

  16. rspec実行

  17. CI のジョブを Digdag で定義するメリット • Gitで管理できる (GitHubを利用してレビューする体制が整う) • ローカルで気軽に実行できる •

    SaaSとの相性も良いためサービスの選択肢が広がる ◦ a • yamlよりも表現力が高い(フローを定義できる) machine: timezone: Asia/Tokyo ruby: version: 2.3 test: override: - digdag run test.dig
  18. CI のジョブを Digdag で定義するデメリット • Jenkinsプラグインを呼び出すなど、サービス固有の命令はできない • ぐらい…?

  19. おためしあれ