用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 相关文章推荐
jquery学习笔记 用jquery实现无刷新登录
Aug 08 Javascript
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
js图片轮播手动切换效果
Nov 10 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
webpack分离css单独打包的方法
Jun 12 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
Sep 14 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
Feb 01 Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 09 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 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中使用Oracle数据库(3)
2006/10/09 PHP
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php str_replace的替换漏洞
2008/03/15 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
react router4+redux实现路由权限控制的方法
2018/05/03 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
用Python代码来绘制彭罗斯点阵的教程
2015/04/03 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
python创建n行m列数组示例
2019/12/02 Python
python如何求圆的面积
2020/07/01 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
.NET面试题:什么是值类型和引用类型
2016/01/12 面试题
二年级班级文化建设方案
2014/05/10 职场文书
运动会演讲稿50字
2014/08/25 职场文书