Sha256: 845cbf7272b8b22964c692f8bac95a00d1eacefabf14c3b8ec67426e14293814

Contents?: true

Size: 1.96 KB

Versions: 1

Compression:

Stored size: 1.96 KB

Contents

# 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`](https://github.com/arangamani/jenkins_api_client/blob/master/config/login.yml.example).

    $ 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](https://github.com/javan/whenever).

This module uses [jenkins_api_client](https://github.com/arangamani/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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jenkins_cron-0.0.3 README.md