Movatterモバイル変換


[0]ホーム

URL:


Uploaded bycowboyd
KEY, PPTX10,062 views

Ruby Plugins for Jenkins

The document discusses the development and functionality of Ruby plugins for Jenkins, highlighting the transition from Java to Ruby and the need for a structured plan. It outlines the structural components of Ruby plugins, their interaction with Jenkins and the Ruby runtime, and mentions various tools required for plugin development. The document indicates the growing ecosystem with over 4,000 plugins available, showcasing the potential for Ruby integrations in CI solutions.

Embed presentation

Download as KEY, PPTX
Ruby PluginsYou’ve come a long way baby
Charles Lowell• cowboyd@github• cowboyd@twitter• cowboyd@jenkins-ci
What the hell am I  doing here?
User Interfaces
Lots of Ruby
Lot’s of JavaScript
Lot’s of Java/C++            + therubyracer, therubyrhino
Bugs!• Ruby versions (1.8.6,1.8.7,1.9.2, rbx,  jruby, ...)• CC/libc version• OS (OSX, ubuntu, rhel)
HELL
We need a DIESEL   CI solution.
Fun Fact: Weactually designed    this logo
jenkins.rb 0.1• rubygem containing jenkins.war• utility for starting a test jenkins server
Dr Nic         •   Saw my lightning             talk         •   went hog wild on             the gem
jenkins.rb 1.0          •   create/list/update              jobs from CLI          •   create sinatra/rails              jobs in one go          •   huge arsenal of              Jenkins Macros
Eventually, we wanted more than macros.
Ruby PluginsExtend Jenkins with nothing but Ruby
We need a plan
How ‘bout   you do it?We need a plan
Mad Propers!  Kohsuke Kawaguchi
Ruby Plugins  See them in action
What does it mean fora plugin to be in Ruby?
Language  Ruby.  Duh.
APImust “feel” like Ruby, not just scripting Java.
Example“Push” vs “Pull” configuration
Java
Scripted Java
Ruby
ToolsThey’ve gotta be Ruby too.
-Maven -javac• Rake - build and assembly• Bundler - dependency management• jpi - development tools
TestingYup, also Ruby
No solid answers yet• unit testing?• mocking builds, jobs, projects?• fixtures for builds, jobs, projects?
How it works
How it works    Plugin.java
Plugin.java                      Jenkins                                                   •Ruby Runtime Plugin                                                       Small as can                                jenkins-ruby-api       possibly be   Ruby Plugin A                 bundled gems                                                   •                                plugin ruby code                                                       5 small classes   Ruby Plugin B                      .....                                                   •   will not instantiate                                                       extension points                                jenkins-ruby-api   Ruby Plugin C                 bundled gems                                plugin ruby code
Plugin.java                      Jenkins                                         •Ruby Runtime Plugin                                             every plugin gets                                             its own scripting                                JRuby   Ruby Plugin A                                             container   Ruby Plugin B                 .....                                         •   isolation +                                JRuby        backwards   Ruby Plugin C                                             compatibility
How it works    Plugin.rb
Plugin.rb                      Jenkins                                                   •Ruby Runtime Plugin                                                       own copy of API                                    JRuby                                   ruby API   Ruby Plugin A                 bundled gems                                extension points   •   own copy of gems   Ruby Plugin B                      .....                                                   •   Ruby extension                                    JRuby              points detected   Ruby Plugin C                                   ruby API                                 bundled gems                                                       and auto-loaded                                extension points
Plugin.rb                      JenkinsRuby Runtime Plugin                                       JRuby                                                         •   Library code is                                                             free to vary from                                    ruby API 1.1   Ruby Plugin A                json 1.5, nokogiri 1.8                                  extension points                                                             plugin to plugin                                                         •   Ruby Plugin B                         .....                                                             This includes the                                                             plugin API!                                       JRuby                                  ruby API 1.3rc5   Ruby Plugin C                     json 1.6.4                                  extension points
Plugin.rb (API)• Builder - implement build steps• Publisher - run build steps after build  complete• BuildWrapper - decorate a build with  setup/teardown
Plugin.rb (API)• All Ruby extension points are Plain old  Ruby objects (TM)• Plugin maintains two-way list of proxies to  support this
Plugin.rb (API)          Jenkins                        Ruby Plugin                                                                 •   All Java Objects             Java                              Ruby                                                                     proxied                                                                 •hudson.model.AbstractBuild             Jenkins::Model::Build                                                                     All Ruby Objects                                                                     wrapped                                                                 •             Java                              Ruby                                                                     referential     hudson.tasks.Builder              Jenkins::Tasks::Builder       integrity                             Proxies
More Fundamental than        Ruby
Supporting Features• Flexible Descriptor registration• Pluggable persistence via JRuby Xstream• Stapler support for pluggable templating
Supporting FeaturesMore plugin-provided metadata. Less Java reflection.
What works for Ruby...       works for Python
What works for Ruby...       works for Python         (in theory)
What works for Ruby...         works for Python           (in theory)    but not as magnificently :)
What works for Ruby...      works for JavaScript
What works for Ruby...       works for Clojure
What works for Ruby...       works for Fantom
What works for Ruby...        works for X
400+ Plugins    to date
4,000 plugins
4,000 plugins sooner than you think?
Applications?
Frameworks?
gem install jenkins-plugin
Thanks!• cowboyd@github• cowboyd@twitter• cowboyd@jenkins-ci

Recommended

PDF
Bitter Java, Sweeten with JRuby
PDF
Polyglot Plugin Programming
PDF
Rubypalooza 2009
PPT
Introduction to Ruby on Rails
PDF
Ruby an overall approach
PDF
JRuby in the enterprise
PDF
ruby-cocoa
PDF
An introduction to the ruby ecosystem
PDF
Ruby Beyond Rails
KEY
Ruby On Rails Ecosystem
PDF
Ruby and Rails short motivation
 
KEY
Your fist RubyMotion Application
PDF
OSGi In Anger - Tara Simpson
PPT
Introduction to Ruby on Rails
PDF
Why JRuby?
KEY
5장. Execution Engine
PDF
Ro r trilogy-part-1
PPT
Ruby on rails
PDF
Rails On Spring
KEY
1장 Java란 무엇인가.key
PDF
Aspect Orientated Programming in Ruby
 
KEY
6장 Thread Synchronization
KEY
4장. Class Loader
KEY
2장. Runtime Data Areas
PDF
PHP in the Cloud
 
KEY
3장. Garbage Collection
PDF
Ola Bini J Ruby Power On The Jvm
 
PDF
Jenkins実践入門目次チラ見せしちゃいます
KEY
Jenkins the definitive guide lt(第四回jenkins勉強会)
PPTX
Jenkins user conference 2011

More Related Content

PDF
Bitter Java, Sweeten with JRuby
PDF
Polyglot Plugin Programming
PDF
Rubypalooza 2009
PPT
Introduction to Ruby on Rails
PDF
Ruby an overall approach
PDF
JRuby in the enterprise
PDF
ruby-cocoa
PDF
An introduction to the ruby ecosystem
Bitter Java, Sweeten with JRuby
Polyglot Plugin Programming
Rubypalooza 2009
Introduction to Ruby on Rails
Ruby an overall approach
JRuby in the enterprise
ruby-cocoa
An introduction to the ruby ecosystem

What's hot

PDF
Ruby Beyond Rails
KEY
Ruby On Rails Ecosystem
PDF
Ruby and Rails short motivation
 
KEY
Your fist RubyMotion Application
PDF
OSGi In Anger - Tara Simpson
PPT
Introduction to Ruby on Rails
PDF
Why JRuby?
KEY
5장. Execution Engine
PDF
Ro r trilogy-part-1
PPT
Ruby on rails
PDF
Rails On Spring
KEY
1장 Java란 무엇인가.key
PDF
Aspect Orientated Programming in Ruby
 
KEY
6장 Thread Synchronization
KEY
4장. Class Loader
KEY
2장. Runtime Data Areas
PDF
PHP in the Cloud
 
KEY
3장. Garbage Collection
PDF
Ola Bini J Ruby Power On The Jvm
 
Ruby Beyond Rails
Ruby On Rails Ecosystem
Ruby and Rails short motivation
 
Your fist RubyMotion Application
OSGi In Anger - Tara Simpson
Introduction to Ruby on Rails
Why JRuby?
5장. Execution Engine
Ro r trilogy-part-1
Ruby on rails
Rails On Spring
1장 Java란 무엇인가.key
Aspect Orientated Programming in Ruby
 
6장 Thread Synchronization
4장. Class Loader
2장. Runtime Data Areas
PHP in the Cloud
 
3장. Garbage Collection
Ola Bini J Ruby Power On The Jvm
 

Viewers also liked

PDF
Jenkins実践入門目次チラ見せしちゃいます
KEY
Jenkins the definitive guide lt(第四回jenkins勉強会)
PPTX
Jenkins user conference 2011
PDF
SCM Boot Camp
PDF
Jenkinsstudy#4kokawa
PDF
輪るビングドラム.NET
PDF
Ruby CI with Jenkins
KEY
Discover The Unknown Flex 4.5 (MAX 2011)
PDF
『ユーザーストーリーマッピング ~再演~』第4回 POStudy 〜プロダクトオーナーシップ勉強会〜
PDF
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
PDF
ユーザーストーリー:ファースト・ジェネレーション
PDF
ユーザーストーリー作り(DevLOVE道場第二回)
PDF
『ユーザーストーリーマッピング ~前編~』第2回 POStudy 〜プロダクトオーナーシップ勉強会〜
PDF
No011-01-Suc3rum-20100225
PDF
20110118 scrum 10 mins
PDF
タスク分割
PDF
F#の基礎(?)
PDF
アジャイルサムライ読書会湯島道場第一回Lt
PDF
アジャイルサムライ読書会湯島道場開催概要
PDF
アジャイルサムライ読書会(湯島道場) 第一回 地の巻「アジャイルをはじめる前に」
Jenkins実践入門目次チラ見せしちゃいます
Jenkins the definitive guide lt(第四回jenkins勉強会)
Jenkins user conference 2011
SCM Boot Camp
Jenkinsstudy#4kokawa
輪るビングドラム.NET
Ruby CI with Jenkins
Discover The Unknown Flex 4.5 (MAX 2011)
『ユーザーストーリーマッピング ~再演~』第4回 POStudy 〜プロダクトオーナーシップ勉強会〜
『アジャイルとスクラム』第1回 POStudy 〜プロダクトオーナーシップ勉強会〜
ユーザーストーリー:ファースト・ジェネレーション
ユーザーストーリー作り(DevLOVE道場第二回)
『ユーザーストーリーマッピング ~前編~』第2回 POStudy 〜プロダクトオーナーシップ勉強会〜
No011-01-Suc3rum-20100225
20110118 scrum 10 mins
タスク分割
F#の基礎(?)
アジャイルサムライ読書会湯島道場第一回Lt
アジャイルサムライ読書会湯島道場開催概要
アジャイルサムライ読書会(湯島道場) 第一回 地の巻「アジャイルをはじめる前に」

Similar to Ruby Plugins for Jenkins

KEY
Практики применения JRuby
PDF
JRoR Deploying Rails on JRuby
PDF
ruby-cocoa
PDF
JRuby - The Best of Java and Ruby
PDF
Ugo Cei Presentation
KEY
Crate - ruby based standalone executables
PDF
Intro to J Ruby
PDF
How to develop Jenkins plugin using to ruby and Jenkins.rb
PDF
JRuby - Enterprise 2.0
PDF
Mac ruby deployment
PDF
Hudson以外の何か with 任意
PDF
Quick Intro To JRuby
PDF
Crate Packaging Standalone Ruby Applications
PDF
JRuby - Programmer's Best Friend on JVM
PDF
J Ruby Power On The Jvm
PDF
Hacking with ruby2ruby
PDF
JRuby Basics
ZIP
Rubyで簡単にremote access apiを実行する
ODP
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
PDF
RVM and Ruby Interpreters @ RSC Roma 03/2011
Практики применения JRuby
JRoR Deploying Rails on JRuby
ruby-cocoa
JRuby - The Best of Java and Ruby
Ugo Cei Presentation
Crate - ruby based standalone executables
Intro to J Ruby
How to develop Jenkins plugin using to ruby and Jenkins.rb
JRuby - Enterprise 2.0
Mac ruby deployment
Hudson以外の何か with 任意
Quick Intro To JRuby
Crate Packaging Standalone Ruby Applications
JRuby - Programmer's Best Friend on JVM
J Ruby Power On The Jvm
Hacking with ruby2ruby
JRuby Basics
Rubyで簡単にremote access apiを実行する
Ruby C extensions at the Ruby drink-up of Sophia, April 2012
RVM and Ruby Interpreters @ RSC Roma 03/2011

Recently uploaded

PDF
Unlocking the Power of Salesforce Architecture: Frameworks for Effective Solu...
PPT
software-security-intro in information security.ppt
PDF
Internet_of_Things_IoT_for_Next_Generation_Smart_Systems_Utilizing.pdf
PDF
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
PDF
Day 2 - Network Security ~ 2nd Sight Lab ~ Cloud Security Class ~ 2020
PPTX
Data Privacy and Protection: Safeguarding Information in a Connected World
PDF
Greetings All Students Update 3 by Mia Corp
PPTX
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
PDF
Safeguarding AI-Based Financial Infrastructure
PDF
Session 1 - Solving Semi-Structured Documents with Document Understanding
DOCX
Introduction to the World of Computers (Hardware & Software)
PDF
Energy Storage Landscape Clean Energy Ministerial
PPTX
Cloud-and-AI-Platform-FY26-Partner-Playbook.pptx
PDF
Usage Control for Process Discovery through a Trusted Execution Environment
PDF
Security Technologys: Access Control, Firewall, VPN
PPTX
Cybersecurity Best Practices - Step by Step guidelines
PPTX
Cybercrime in the Digital Age: Risks, Impact & Protection
PPTX
Software Analysis &Design ethiopia chap-2.pptx
PDF
ElyriaSoftware — Powering the Future with Blockchain Innovation
PDF
December Patch Tuesday
 
Unlocking the Power of Salesforce Architecture: Frameworks for Effective Solu...
software-security-intro in information security.ppt
Internet_of_Things_IoT_for_Next_Generation_Smart_Systems_Utilizing.pdf
Dev Dives: AI that builds with you - UiPath Autopilot for effortless RPA & AP...
Day 2 - Network Security ~ 2nd Sight Lab ~ Cloud Security Class ~ 2020
Data Privacy and Protection: Safeguarding Information in a Connected World
Greetings All Students Update 3 by Mia Corp
AI in Cybersecurity: Digital Defense by Yasir Naveed Riaz
Safeguarding AI-Based Financial Infrastructure
Session 1 - Solving Semi-Structured Documents with Document Understanding
Introduction to the World of Computers (Hardware & Software)
Energy Storage Landscape Clean Energy Ministerial
Cloud-and-AI-Platform-FY26-Partner-Playbook.pptx
Usage Control for Process Discovery through a Trusted Execution Environment
Security Technologys: Access Control, Firewall, VPN
Cybersecurity Best Practices - Step by Step guidelines
Cybercrime in the Digital Age: Risks, Impact & Protection
Software Analysis &Design ethiopia chap-2.pptx
ElyriaSoftware — Powering the Future with Blockchain Innovation
December Patch Tuesday
 

Ruby Plugins for Jenkins

Editor's Notes


[8]ページ先頭

©2009-2025 Movatter.jp