Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

本日お話すること ● Jenkins + Digdag で 脱Jenkinsおじさん ● CI のジョブを Digdag で定義するメリットとデメリット

Slide 4

Slide 4 text

@foostan Kosuke Adachi

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

脱 Jenkins おじさん ① ジョブを Git で管理 ● Jenkinsの手軽さをあえてなくす ● GitHubでレビューしてもらう体制を整える ● 問題が起きたときに原因を特定できるようにする、戻せるよう にする ↓ カオスなジョブになりにくい環境が整う

Slide 9

Slide 9 text

脱 Jenkins おじさん ② ジョブを Digdag で定義する ● Digdag: ○ Treasure Data のプロダクト ○ シェルスクリプト、Phyton、Ruby でタスクを定義して、 yaml(正しくはyamlを拡張したもの)で定義したフローで実 行するもの

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

テスト準備

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

テスト準備

Slide 15

Slide 15 text

rubocop実行

Slide 16

Slide 16 text

rspec実行

Slide 17

Slide 17 text

CI のジョブを Digdag で定義するメリット ● Gitで管理できる (GitHubを利用してレビューする体制が整う) ● ローカルで気軽に実行できる ● SaaSとの相性も良いためサービスの選択肢が広がる ○ a ● yamlよりも表現力が高い(フローを定義できる) machine: timezone: Asia/Tokyo ruby: version: 2.3 test: override: - digdag run test.dig

Slide 18

Slide 18 text

CI のジョブを Digdag で定義するデメリット ● Jenkinsプラグインを呼び出すなど、サービス固有の命令はできない ● ぐらい…?

Slide 19

Slide 19 text

おためしあれ