Skip to content

riywo/jenkins_cron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JenkinsCron

Build Status

Simple DSL to define Jenkins scheduled jobs.

Installation

Add this line to your application's Gemfile:

gem 'jenkins_cron'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jenkins_cron

Usage

First, write a jenkins.yml to use jenkins_api_client. See also a sample yaml file on jenkins_api_client.

$ cat config/jenkins.yml
server_url: "http://jenkins.dev"

Next, create a directory config/schedule and write DSL.

$ cat config/schedule/foo.rb
job :test1 do
  command "whoami", user: "riywo"
  timer every: 3.minute
end

Then, run jenkins_cron update command.

$ jenkins_cron update foo
I, [2013-07-25T04:33:41.887344 #52816]  INFO -- : Obtaining jobs matching filter 'foo-test1'
I, [2013-07-25T04:33:41.887470 #52816]  INFO -- : GET /api/json
I, [2013-07-25T04:33:42.205541 #52816]  INFO -- : Posting the config.xml of 'foo-test1'
I, [2013-07-25T04:33:42.205642 #52816]  INFO -- : GET /api/json
I, [2013-07-25T04:33:42.228267 #52816]  INFO -- : POST /job/foo-test1/config.xml
I, [2013-07-25T04:33:42.955815 #52816]  INFO -- : Obtaining views based on filter 'foo'
I, [2013-07-25T04:33:42.955938 #52816]  INFO -- : GET /api/json

DSL

TODO: Write documentation

TODO

  • CLI sub command
    • update diff, confirm
    • show scheduled jobs
    • delete
    • show timer examples
      • 2013/7/15 22:00, 2013/7/15 23:00…
  • job cascading
  • more tests

Thanks to

This module is inspired by whenever.

This module uses jenkins_api_client.

Many thanks!

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request