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)