Skip to content

hridyeshpant/node-jenkins-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodejs-jenkins-api

Install

npm install jenkins-api

Usage

setup

var jenkinsapi = require('jenkins-api');

// no auth
var jenkins = jenkinsapi.init("http://jenkins.yoursite.com");

// username/password
var jenkins = jenkinsapi.init("http://username:password@jenkins.yoursite.com");

// API Token
var jenkins = jenkinsapi.init('https://username:token@jenkins.company.com');

all jobs

jenkins.all_jobs(function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

job info

jenkins.job_info('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

enable job

jenkins.enable_job('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

disable job

jenkins.disable_job('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

build

jenkins.build('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

stop build

jenkins.stop_build('job-in-jenkins', 'build-number',function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

build with params

jenkins.build('job-in-jenkins', {key: 'value'}, function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

build info

jenkins.build_info('job-in-jenkins', 'build-number', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

last build info

jenkins.last_build_info('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

last build report

jenkins.last_build_report('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

get config xml

jenkins.get_config_xml('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

copy job

jenkins.copy_job('job-to-copy'
                ,'new-job-title'
                ,function(config) {
                    // function which takes the config.xml, and returns
                    // the new config xml for the new job
                    return config.replace('development','feature-branch');
                }
                ,function(err, data) {
                      // if no error, job was copied
                      if (err){ return console.log(err); }
                      console.log(data)
                });

delete job

jenkins.delete_job('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

last success

jenkins.last_success('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

last result

jenkins.last_result('job-in-jenkins', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

job output

jenkins.job_output('job-in-jenkins', 'buildname', function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

get all queued items

jenkins.queue(function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

get all jenkins computers (aka workers)

jenkins.computers(function(err, data) {
  if (err){ return console.log(err); }
  console.log(data)
});

update existing job configuration

jenkins.update_config('job-to-update'
                ,function(config) {
                    // function which takes the config.xml, and returns
                    // the new config xml for the new job
                    return config.replace('development','feature-branch');
                }
                ,function(err, data) {
                      // if no error, job was copied
                      if (err){ return console.log(err); }
                      console.log(data)
                });

Default configuration

You can set the default configuration which will be use in all HTTP requests by calling init with the additional options parameter:

// default request options
var jenkins = jenkinsapi.init("http://jenkins.yoursite.com", {strictSSL: false});

Since node-jenkins-api uses request/request as HTTP client, please refer to the documentation for available options.

Notes

Modeled after the Python Jenkins API

About

Jenkins API for NodeJS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%