Slide 1

Slide 1 text

Casual CI Server -Testing Casual Talks #1- by @r7kamura IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 2

Slide 2 text

意識の高い若者の面白プロダクト枠 IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 3

Slide 3 text

自己紹介 -------------------------------------- name: Ryo Nakamura id: r7kamura blog: r7kamura.hatenablog.com at: COOKPAD Inc.

Slide 4

Slide 4 text

最近作ったもの -------------------------------------- * Chanko 2.0 - prototyping rails * Autodoc - auto documenting tool * Chatroid - chatter bot framework * Gig - github as a blog database

Slide 5

Slide 5 text

今日話すこと -------------------------------------- * あらすじ * JJeennkkiinnssと愉快な仲間達 * AAllttrriiaaつくったよ * AAllttrriiaa PPlluuggiinnの作り方

Slide 6

Slide 6 text

あらすじ WWhhyy ccaassuuaall ccii sseerrvveerr??

Slide 7

Slide 7 text

あらすじ -------------------------------------- あらゆる作業が自動化され、全ての行 動が記録・管理されるようになった時 代。自宅へと投下されるJJeennkkiinnss。だ が、その言語は人々に希望を捨てさせ た。若者の意識は、自分が彼を救おう と決心させる。果たしてカジュアルを 望む人々の物語はどこへ続くのか?

Slide 8

Slide 8 text

Jenkins Clones JJeennkkiinnssと愉快な仲間達

Slide 9

Slide 9 text

Jenkins Ukigumo CI Joe Cerberus Intergrity CruiseControll BuildBot Signal

Slide 10

Slide 10 text

Jenkins 説明不要 JJaavvaa

Slide 11

Slide 11 text

CI Joe * by defunkt * Ruby (sinatra) * multi-process * 2 years ago...

Slide 12

Slide 12 text

Ukigumo * by tokuhirom * Perl (amon2) * client/server

Slide 13

Slide 13 text

Jenkins Ukigumo CI Joe Cerberus Intergrity CruiseControll BuildBot Signal ** JJeennkkiinnssほど高機能じゃなくて良い ** プラグインで拡張出来る機能は欲しい ** もっとカジュアルにプラグイン書きたい ** ゥチらでRRaaiillss 44盛り上げてこ㽉㽉 ↓ JJeennkkiinnss cclloonneeで一発あてるぞ

Slide 14

Slide 14 text

Altria Alternative Ruby Integration Application github.com/r7kamura/altria IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 15

Slide 15 text

Altria Summary ------------------------------------------ * Server + Worker + Cron * Rails 4, Redis, MySQL * HTML view + JSON REST API * Plugin as a gem IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 16

Slide 16 text

Server Worker Queue DB Cron User Altria

Slide 17

Slide 17 text

Server Worker Queue DB Cron User Altria Rails4

Slide 18

Slide 18 text

Server Worker Queue DB Cron User Altria Redis

Slide 19

Slide 19 text

Server Worker Queue DB Cron User Altria MySQL

Slide 20

Slide 20 text

Server Worker Queue DB Cron User Altria jobs builds

Slide 21

Slide 21 text

Server Worker Queue DB Cron User Altria 1. HTML 2. JSON 3. Streaming

Slide 22

Slide 22 text

Server Worker Queue DB Cron User Altria

Slide 23

Slide 23 text

Plugins ------------------------------------------------- * Using Rails’ plugin system * Every plugin is a gem * Modify Gemfile to add plugins # Gemfile gem "altria-git", git: "[email protected]:..." gem "altria-pipeline", git: "[email protected]:..."

Slide 24

Slide 24 text

# δϣϒͷઃఆ߲໨Λ௥Ճ Job.property(:next_job_id) # Ϗϧυ׬ྃޙʹϑοΫ Job.after_execute do Job.find(next_job_id).enqueue end Example1: Build Pipeline Plugin

Slide 25

Slide 25 text

Example2: Processing Time Plugin # viewͷϑοΫՕॴʹHTMLΛຒΊࠐΉ JobsController.before_filter only: :show do view_context.content_for :jobs_show do render_to_string(partial: "chart").html_safe end end # jobs/_chart.html.slim - άϥϑඳը༻HTML&JS = line_chart @resource.builds.limit(100)

Slide 26

Slide 26 text

Other examples * altria-pipeline * altria-processing_time * altria-simple_cov * altria-git * altria-authentication * ...

Slide 27

Slide 27 text

今回話さなかったこと * RRaaiillss44での実装の長所短所 * 運用事例 ((自宅のBBOOTTと連携等)) * 他のCCIIアプリと比べたときの位置付け * 今後追加予定の機能 IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 28

Slide 28 text

まとめ * AAllttrriiaaというCCII SSeerrvveerrを作りました * 普通のWWeebbアプリと同じように作れるよ * カジュアルにプラグインが書けるよ * 機能要望 && 開発者を募集しています IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM

Slide 29

Slide 29 text

IUUQXXXqJDLSDPNQIPUPTCSPPLXBSETJ[FTM ご静聴ありがとうございました ((質問・要望は@@rr77kkaammuurraaまで)) github.com/r7kamura/altria