用node.js写一个jenkins发版脚本


Posted in Javascript onMay 21, 2019

背景

每次到网页里手动发版有点烦,写个脚本来提高开发效率。

CFG

在 jenkins 设置里获取 API TOKEN。

把 host 和账号密码拼接起来就可以通过鉴权。

const token = {
 user: '',
 password: '',
}

const host = 'jenkins.xxx.cn';
const basicUrl = `http://${token.user}:${token.password}@${host}`;

BUILD

调用 jenkins 提供的 jenkins.job.build() 方法发版。

// crumbIssuer 默认false, true 启用CSRF保护支持
const jenkins = require('jenkins')({ baseUrl, crumbIssuer: true });

const job_name = ''; // 想要发版的job的名字

jenkins.job.build(
 {
  name: job_name,
  parameters: {
   name: 'value', // 填写一些参数信息
  } 
 },
 function(err, data) {
  if (err) throw err;

  console.log('queue item number', data);
});

查看发版状态

执行 build 之后我们想要查看当前 build 的状态,只成功、失败还是进行中。

jenkins.job.get() 获取当前 job 的信息。data.lastBuild.number 可以拿到最后一个 build 的 number,最后一个 build 也就是我们刚刚触发的 build。

jenkins.build.get() 获取当前 build 的信息。data.result 获取当前 build 的结果

jenkins.job.get(job_name, (err, data) => {
 if (err) throw err;

 const lastBuildNumber = data.lastBuild.number;
 console.log('last build number', lastBuildNumber);

 jenkins.build.get(job_name, lastBuildNumber, (err, data) => {
  if (err) throw err;
  console.log('last build result', data.result);
 })
});

资料

jenkins

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Bootstrap每天必学之按钮
Nov 26 Javascript
关于cookie的初识和运用(js和jq)
Apr 07 Javascript
jQuery根据表单name获取值的方法
May 24 Javascript
全面了解JavaScript对象进阶
Jul 19 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
Feb 24 Javascript
jQuery返回定位插件详解
May 15 jQuery
详解React 的几种条件渲染以及选择
Oct 23 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
JS使用正则表达式提交页面验证的代码
Oct 16 Javascript
vue cli3适配所有端方案的实现
Apr 13 Javascript
JavaScript中layim之整合右键菜单的示例代码
Feb 06 Javascript
vue-router源码之history类的浅析
May 21 #Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 #Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 #Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
May 21 #Javascript
vue+element创建动态的form表单及动态生成表格的行和列
May 20 #Javascript
Node 搭建一个静态资源服务器的实现
May 20 #Javascript
vue+element实现打印页面功能
May 20 #Javascript
You might like
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
Javascript Objects详解
2014/09/04 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
vue filters的使用详解
2018/06/11 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python中max函数用法实例分析
2015/07/17 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
Sony C++笔试题
2013/03/10 面试题
爱情保证书大全
2014/04/29 职场文书
个人承诺书怎么写
2014/05/24 职场文书
欢度春节标语
2014/07/01 职场文书
人事代理委托书
2014/09/27 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
力克胡哲观后感
2015/06/10 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
SQL Server内存机制浅探
2022/04/06 SQL Server
PyTorch中permute的使用方法
2022/04/26 Python
Golang解析JSON对象
2022/04/30 Golang