下面我来详细讲解“用node.js写一个jenkins发版脚本”的完整攻略。
1. 环境准备
在开始编写jenkins发版脚本之前,我们需要安装好node.js和jenkins。以下是安装步骤。
安装node.js
- 访问node.js官网,下载对应系统的安装包。
- 安装node.js。安装过程中按照默认设置一步步进行即可。
安装jenkins
- 访问官网,下载对应系统的安装包。
- 安装jenkins。安装过程中按照默认设置一步步进行即可。
2. 编写脚本
在安装好node.js和jenkins之后,我们可以开始编写脚本了。以下是脚本编写的步骤。
2.1 安装依赖
我们需要安装以下依赖,这些依赖可以让我们的脚本更加方便和快速地操作jenkins。
npm install jenkins-api request --save
2.2 code
下面是一个根据参数发起jenkins构建的代码示例。
const Jenkins = require('jenkins-api');
const request = require('request');
// jenkins连接参数
const jenkinsHost = 'http://yourJenkinsHost:8080';
const jenkinsUser = 'yourJenkinsUserName';
const jenkinsToken = 'yourJenkinsToken';
const jenkinsJobName = 'yourJenkinsJobName';
const jenkinsOptions = {
timeout: 5000,
promisify: true,
headers: {
'Authorization': 'Basic ' + Buffer.from(jenkinsUser + ':' + jenkinsToken).toString('base64')
}
}
const options = {
url: jenkinsHost + '/job/' + jenkinsJobName + '/build?token=' + jenkinsToken,
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
}
};
function startBuild() {
return new Promise((resolve, reject) => {
Jenkins.api(jenkinsHost, jenkinsOptions, (err, jenkins) => {
if (err) reject(err);
jenkins.build(jenkinsJobName, (err) => {
if (err) reject(err);
resolve('jenkins构建任务发起成功');
});
});
});
}
async function build() {
try {
// 发起jenkins构建任务
const result = await startBuild();
console.log(result);
// 取消jenkins构建任务
setTimeout(() => {
request(options, (err, res, body) => {
if (body.match(/Queue item successfully cancelled/g)) {
console.log('jenkins构建任务已取消');
} else {
console.log('jenkins构建任务取消失败,', body);
}
});
}, 1000);
} catch (error) {
console.log(error);
}
}
build();
2.3 示例说明
2.3.1 示例一
我们有一个node.js工程正在使用jenkins进行自动构建,但我们希望可以自行选择构建或取消构建。我们可以在项目的根目录下新建一个build.js
脚本,通过执行这个脚本来实现自行选择构建或取消构建的功能。
2.3.2 示例二
我们有一个管理后台项目,项目部署在多台服务器上,每当需要部署新的版本时,我们需要一个一键发版的脚本来自动将代码打包并上传到指定服务器,最后再自动触发jenkins进行自动化部署。我们可以使用node.js编写一个发版脚本,集成了打包、上传、触发jenkins部署的功能。这个脚本可以在我们发布应用时大大减少发布的时间和工作量。
3. 总结
通过以上步骤,我们可以成功地用node.js写一个jenkins发版的脚本,而这个脚本也可以应用于我们的日常工作之中。在开发和生产环境中,都可以使用这个脚本进行自动化构建和部署。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用node.js写一个jenkins发版脚本 - Python技术站