JenkinsCron
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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request