Slide 1

Slide 1 text

mgemのCIを支える諸々 〜 細かいパッケージいっぱいのCIをメンテする 〜 渡辺 丈 Fusic 2018/12/10 LINE Developer Meetup #47

Slide 2

Slide 2 text

自己紹介 - ci.mruby.orgの中の人 - mrubyチョットデキルヨ - お仕事はRails多め

Slide 3

Slide 3 text

mrubyといえば - 軽いRuby実装 - 福岡で熱いらしい - 福岡Ruby大賞受賞しやす い

Slide 4

Slide 4 text

mgemって 何よ? - mrubyの拡張ライブラリ - リストが管理されてる - CとRubyで書ける - 300前後ある

Slide 5

Slide 5 text

なんでCIが 必要なの? - リストに登録されてもメンテ が続かない - たまに、mruby本体の修正 で死んでる

Slide 6

Slide 6 text

ci.mruby.org - 去年の会社の合宿でお蔵 入りしてたネタを完成させた - 詳しくはこの記事 - やっぱり、計算能力大事

Slide 7

Slide 7 text

ci.mruby.orgが 今年誕生 - 実はつい最近までまともな ドメインが付いていなかった (アレよアレ - 詳しくはこの課題 - CNAMEが10月頃ついた

Slide 8

Slide 8 text

ci.mruby.orgの 構成 - docker-composeで管理 - nginxがフロント - Let’s EncryptでSSL証明書 - Jenkins - ビルド用のコンテナを Jenkinsのスレーブに

Slide 9

Slide 9 text

なぜJenkins? - ナウいTravis CIとか CircleCIとか - GitLabあるやん? ↓ - 設定ファイルの置き場 - 同じ条件でのテスト - 運用コスト - APIあるか?

Slide 10

Slide 10 text

珍しい試み? - Jenkinsのjobはmgem-list からトリガーされるjobで生 成してる - JenkinsはJavaで書かれて ますが、Rubyでジョブ生成 スクリプトを書いてる - Rubyプラグイン便利 - 生成スクリプトはここ

Slide 11

Slide 11 text

普段の メンテ作業 - JenkinsとJenkinsプラグイ ンの更新 - SSL証明書の更新(3ヶ月に 一回くらい) - RSSで失敗してるやつを見 つけて気が向いたら直す

Slide 12

Slide 12 text

たまにやること - 簡単な修正をプルリクにし てGitHubの草を生やす - mrubyのお困りごとにFF外 から助ける - Twitterは見てるヨ - GitHubで@されたらみるヨ

Slide 13

Slide 13 text

たまにあること - matzにCIを赤く燃やされる - 2.0前なので最近多め - 古いmrbgemの対応に悩 む

Slide 14

Slide 14 text

今後の課題 - mruby本体との連携 - mruby本体の保守性を上 げる - GitLabに移行 - 拡張モジュールの運用にお 金出してくれるとこ探す - セキュリティを真面目にや る

Slide 15

Slide 15 text

ありがとうございました。