Created
November 27, 2020 20:44
-
-
Save AnandShiva/fc599ab2c8d879ab46d3bacbd0dddc4f to your computer and use it in GitHub Desktop.
File parameterised Jenkins Job triggered in nodejs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var axios = require('axios'); | |
var FormData = require('form-data'); | |
var fs = require('fs'); | |
var data = new FormData(); | |
const jenkinsUrl = 'http://example_jenkins_server_url.com/job/<JOB_NAME>/build'; | |
// notice the URL has build not buildWithParameters if the job has file parameters. ^ | |
const userName = 'example_user'; | |
const password = 'example_pass' | |
const params = {"parameter": [ | |
// file0 here is the field name we are appending to data object, | |
// this informs jenkins while file maps to which job parameter, so even multiple file uploads can be done using this approach! | |
{"name":"<Name Of file parameter in Job>", "file":"file0"} | |
// incase you have additional string parameters you need to pass add it here. | |
{"name": "StringParam1", "value": "value"} | |
]} | |
data.append('file0', fs.createReadStream(<full file path>)); | |
data.append('json', JSON.stringify(params)); | |
var config = { | |
method: 'post', | |
url: jenkinsUrl, | |
headers: { | |
Authorization: `Basic ${Buffer.from(`${userName}:${password}`).toString('base64')}`, | |
...data.getHeaders() | |
}, | |
data : data | |
}; | |
axios(config) | |
.then(function (response) { | |
console.log(JSON.stringify(response.data)); | |
}) | |
.catch(function (error) { | |
console.log(error); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment