Ruby
Remote Access API
      Toshio Maki @Kirika_K2
•              (@Kirika_K2)

•          id:Kirika / http://github.com/kirikak2/

•       SIer                           Ruby

•   1    Hudson                 Ruby on Rails
    Hudson

•                      PC
                                   MacBook Air
Remote Access API

• Jenkins

• http://jenkins-host/*****/api   REST
Remote Access API


1.              Jenkins
2.
3.


                    Remote Access API
         Ruby
•   Ruby(1.8.7 or 1.9.2              )
    Windows ActiveScriptRuby

•   Rubygems(1.5.0 1.7.2                 )

•   hudson-remote-api

    •         Dru Ibarra

    •   https://github.com/Druwerd
hudson-remote-api


gem       hudson-remote-api

$ gem install hudson-remote-api --no-ri --no-rdoc
Fetching: hudson-remote-api-0.2.2.gem (100%)
Successfully installed hudson-remote-api-0.2.2
1 gem installed
Ruby                                    irb

$ irb                        Rubygem
>> require 'rubygems'
=> false                               false


>> require 'hudson-remote-api'
=> true

>> Hudson::Job.new(“rubynion”).build
Jenkins
                  Jenkins


Hudson[:url] = ‘http://hogehoge:8080’
Hudson[:user] = ’t-maki’
Hudson[:password] = ‘password’
•
    Hudson::Job.new(“rubynion”).copy(“rubynion_copy”)

•
    Hudson::Job.new(“rubynion”).config

•
    Hudson::Job.new(“rubynion”).update config

•
    Hudson::Job.new(“rubynion”).build
require ‘rubygems’
require ‘hudson-remote-api’
require ‘nokogiri’


project = Hudson::Job.new(“rubynion”)                   XML

config = Nokogiri::XML.parse project.config             Jenkins

config.at(‘/project/scm/branches/hudson.plugins.git.BranchSpec/name’)
  .child.content = “refs/merge/requests/#{merge-requests-num}”

project.update config.to_s
project.build
project.wait_for_build_to_finish
puts Hudson::Build.new(“rubynion”, project.last_completed_build).result
collaborator
  commiter
   merge-requests

                                github clone(Rails        )


                                                     Gitorious
merge-requests
     merge-requests
                                        merge-requests
           Jenkins
                                             reject
• hudson-remote-api
    •                   2

•       github   fork
•   Remote Access API



•   Ruby hudson-remote-api
      Remote Access API

•   Git   Subversion hook
    Jenkins

Rubyで簡単にremote access apiを実行する

  • 1.
    Ruby Remote Access API Toshio Maki @Kirika_K2
  • 2.
    (@Kirika_K2) • id:Kirika / http://github.com/kirikak2/ • SIer Ruby • 1 Hudson Ruby on Rails Hudson • PC MacBook Air
  • 3.
    Remote Access API •Jenkins • http://jenkins-host/*****/api REST
  • 4.
    Remote Access API 1. Jenkins 2. 3. Remote Access API Ruby
  • 5.
    Ruby(1.8.7 or 1.9.2 ) Windows ActiveScriptRuby • Rubygems(1.5.0 1.7.2 ) • hudson-remote-api • Dru Ibarra • https://github.com/Druwerd
  • 6.
    hudson-remote-api gem hudson-remote-api $ gem install hudson-remote-api --no-ri --no-rdoc Fetching: hudson-remote-api-0.2.2.gem (100%) Successfully installed hudson-remote-api-0.2.2 1 gem installed
  • 7.
    Ruby irb $ irb Rubygem >> require 'rubygems' => false false >> require 'hudson-remote-api' => true >> Hudson::Job.new(“rubynion”).build
  • 8.
    Jenkins Jenkins Hudson[:url] = ‘http://hogehoge:8080’ Hudson[:user] = ’t-maki’ Hudson[:password] = ‘password’
  • 9.
    Hudson::Job.new(“rubynion”).copy(“rubynion_copy”) • Hudson::Job.new(“rubynion”).config • Hudson::Job.new(“rubynion”).update config • Hudson::Job.new(“rubynion”).build
  • 10.
    require ‘rubygems’ require ‘hudson-remote-api’ require‘nokogiri’ project = Hudson::Job.new(“rubynion”) XML config = Nokogiri::XML.parse project.config Jenkins config.at(‘/project/scm/branches/hudson.plugins.git.BranchSpec/name’) .child.content = “refs/merge/requests/#{merge-requests-num}” project.update config.to_s project.build project.wait_for_build_to_finish puts Hudson::Build.new(“rubynion”, project.last_completed_build).result
  • 11.
    collaborator commiter merge-requests github clone(Rails ) Gitorious merge-requests merge-requests merge-requests Jenkins reject
  • 12.
    • hudson-remote-api • 2 • github fork
  • 13.
    Remote Access API • Ruby hudson-remote-api Remote Access API • Git Subversion hook Jenkins

Editor's Notes