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

下面我来详细讲解“用node.js写一个jenkins发版脚本”的完整攻略。

1. 环境准备

在开始编写jenkins发版脚本之前,我们需要安装好node.js和jenkins。以下是安装步骤。

安装node.js

  1. 访问node.js官网,下载对应系统的安装包。
  2. 安装node.js。安装过程中按照默认设置一步步进行即可。

安装jenkins

  1. 访问官网,下载对应系统的安装包。
  2. 安装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技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • nodejs制作一个文档同步工具自动同步到gitee中的实现代码

    制作一个文档同步工具自动同步到Gitee中需要以下步骤: 1. 初始化项目 在电脑中创建一个文件夹,打开命令行终端,进入该文件夹,初始化一个nodejs项目: npm init -y 2. 安装依赖 为了实现自动同步到Gitee,我们需要安装以下依赖: nodegit:操作git的nodejs库 chokidar:监控文档变化的nodejs库 执行以下代码安…

    node js 2023年6月8日
    00
  • JSON生成Form表单的方法示例

    下面我将详细讲解“JSON生成Form表单的方法示例”的完整攻略。 什么是JSON表单生成方法 JSON生成表单的方法是通过将JSON数据转化为HTML表单元素的过程。开发者可以通过编写JSON数据来描述表单元素,再通过JavaScript将JSON数据动态生成为HTML表单元素。 JSON表单生成方法的示例 示例一: 以下为JSON数据样例: { &quo…

    node js 2023年6月9日
    00
  • 理解Koa2中的async&await的用法

    首先我们需要明确几个概念: async:用来声明异步函数,在函数前面加上async关键字,表示函数里面可能会有异步操作。 await:用于等待异步任务执行完成,常用于等待异步函数的结果,会暂停代码执行直到异步任务完成。 在Koa2中,我们常用async和await来处理异步代码,下面我们来详细讲解它们的用法。 一、async 在Koa2中使用async关键字…

    node js 2023年6月8日
    00
  • JavaScript 的setTimeout与事件循环机制event-loop

    JavaScript 的 setTimeout 与事件循环机制 event-loop 是前端开发中比较重要的知识点之一,本篇文章将会提供一份完整攻略,以便更好地理解这两个概念。 setTimeout 简介 setTimeout 是 JavaScript 的一个函数,可以用来设置一个定时操作,表示在指定的延迟时间之后执行一段程序。setTimeout 语法如下…

    node js 2023年6月8日
    00
  • nodejs npm包管理的配置方法及常用命令介绍

    Node.js npm包管理的配置方法及常用命令介绍 配置方法 安装 Node.js Node.js官网上提供了常规的安装方式,具体可见https://nodejs.org/zh-cn/download/。不过由于 Node.js 需要依赖于系统的 C++ 编译环境,如果你在安装过程中遇到问题,可以考虑使用编译好的二进制程序安装 Node.js,例如 nvm…

    node js 2023年6月8日
    00
  • 详解Vue2的diff算法

    详解Vue2的diff算法 什么是diff算法? diff算法是指在比较两个树形结构之间的不同之处时使用的一种算法。在Vue的虚拟DOM中,使用diff算法来计算出虚拟DOM的差异,然后再根据差异进行最小化的更新。 Vue2中的diff算法 Vue2中的diff算法采用了双端比较的策略。双端比较会同时在新旧虚拟DOM中分别开启头尾两个指针,在头尾两端同时向中…

    node js 2023年6月8日
    00
  • vue执行配置选项npm run serve的本质图文详解

    详细讲解一下“vue执行配置选项npm run serve的本质图文详解”的攻略。 什么是npm run serve? npm是Node.js的包管理工具,其中run是用来运行脚本的命令。而在Vue.js项目中,我们可以在package.json文件中设置脚本命令,比如: "scripts": { "serve": &…

    node js 2023年6月8日
    00
  • vue2从数据变化到视图变化之diff算法图文详解

    Vue2从数据变化到视图变化之diff算法图文详解 什么是diff算法? diff算法,全称为“数据变化比较算法”,是前端框架实现响应式更新视图的关键算法之一,Vue框架在更新组件视图时也是基于此算法实现的。其本质目的是为了找到虚拟DOM树上新旧节点之间的差异,通过局部更新减少web浏览器对DOM的操作次数,提高渲染性能。 diff算法的工作原理 diff算…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部