0.0
No commit activity in last 3 years
No release in over 3 years
A DSL for Jenkins cron job
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0
>= 0

Runtime

 Project Readme

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