jenkins 构建nodejs-pipeline流水风格的任务



Step3 上图代码如下
node("master"){
//warp([$class:'BuildUser']) {BUILD_USER = BUILD_USER}
GIT_NAME = "https://github.com/Azure-Samples/nodejs-docs-hello-world.git"
if(SCM_REVERSION == ''){
SCM_REVERSION = 'origin/master'
git url : "https://github.com/Azure-Samples/nodejs-docs-hello-world.git"
}
checkout([$class: 'GitSCM', branches: [[name: SCM_REVERSION]],
userRemoteConfigs: [[url: GIT_NAME]]])
currentBuild.displayName = "${BUILD_NUMBER}-${SCM_REVERSION}"
}
node("alpine"){
if (fileExists("package.json")){
sh("ls -al")
sh("npm install")
sh("scp -r * root@172.16.47.123:/data/app/demo-nodejs-pipeline")
}else{
error "File not found:package.json"
}
}
node("master"){
// 默认上面的node使用就是master节点 所以可加 ("master")也可以不添加
//warp([$class:'BuildUser']) {BUILD_USER = BUILD_USER}
GIT_NAME = "https://github.com/Azure-Samples/nodejs-docs-hello-world.git"
// 定义git地址链接
if(SCM_REVERSION == ''){
// 使用 git parameter 参数设置名字 然后下面进行构建的时候可以直接使用名称 分情况进行添加$SCM_REVERSION类型进行使用
SCM_REVERSION = 'origin/master'
//默认使用的 远程分支 因为上面使用的是开源的不需要输入密码的github地址
git url : "https://github.com/Azure-Samples/nodejs-docs-hello-world.git"
// 也可以在开头直接定义 GIT_NAME 之后上面直接使用 git url 进行继续定义使用
}
checkout([$class: 'GitSCM', branches: [[name: SCM_REVERSION]],
userRemoteConfigs: [[url: GIT_NAME]]])
// 上面的语法是从pipeline语法中找到的 下面的图可以指导自己找到
currentBuild.displayName = "${BUILD_NUMBER}-${SCM_REVERSION}"
// 上面定义的菜蔬可以去掉构建之后数字前面的#号 后面的参数可以直接拿到远程的分支是 主分支还是其它分支的类型 在构建完成之后 显示的更加清晰明了
}
node("alpine"){
// 上面git执行构建完成之后 定义哪个节点继续进行安装 使用 将代码进行发布
if (fileExists("package.json")){
// if进行判断 构建之后的任意一个新生成的文件是否已经存在了 然后继续进行发布 不然构建失败之后 也是直接发送给客户端了
sh("ls -al")
sh("npm install")
// 节点执行安装 构建之后需要安装的包
sh("scp -r * root@172.16.47.123:/data/app/demo-nodejs-pipeline")
// 将构建之后的内容递归发布到其它机器
}else{
error "File not found:package.json"
// 错误回复客户端
}
}




jenkins 构建nodejs-pipeline流水风格的任务的更多相关文章
- 使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...
- jenkins学习之自动打包构建nodejs应用
上一节记录了下jenkins在centos下的安装,这节继续,说下怎么使用jenkins和nodejs进行自动打包更新服务. 创建任务 创建任务比较简单,这里我们创建自由风格项目: General信息 ...
- Jenkins 构建自动化 .NET Core 发布镜像
Jenkins 构建自动化 .NET Core 发布镜像 导读 在本章中,将介绍如何在 Linux 下使用 Docker 部署.启动 Jenkins,编写脚本,自动化构建 .NET Core 应用,最 ...
- Jenkins构建通知
目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...
- 使用Jenkins构建持续集成环境
简介 Jenkins是一个开源的持续集成工具,提供了数百种插件供用户选择,能够完成整套持续集成环境的构建. 它具有如下的特点: 持续集成和持续发布 作为可扩展的自动服务器,Jenkins可以作为简单的 ...
- jenkins创建multibranch pipeline
参考以下文章进行实践: https://jenkins.io/doc/pipeline/tour/hello-world/#what-is-a-jenkins-pipeline (看见一个介绍的还不错 ...
- [ci]jenkins构建容器项目java-helloworld-非docker plugin模式
栗子思路说明: 不使用任何docker plugin 使用jenkins server本地(含mvn环境)构建,无jenkins slave jenkins server本地构建的war包,推送dep ...
- GitLab 自动触发 Jenkins 构建
GitLab 是当前应用非常广泛的 Git Hosting 工具,Jenkins 是非常牛逼的持续集成工具.尽管 GitLab 有内建的 GitLab CI,但它远没有 Jenkins 那么强大好用. ...
- jenkins构建maven项目
使用jenkins构建部署maven项目 因为一开始我们是自定义插件,所以构建项目的时候没有显示maven风格的项目.如果要想使用maven,我们这里必须得安装一下插件,我们在插件管理器中, 可以看到 ...
随机推荐
- Django中web开发用md5加密图片名并存储静态文件夹
一般在开发中,有的网站存在大量图片,首先图片的名称是不能重复的, 但是除了数据库可用的id以外我们可以用time模块中time.time()获取的时间来进行md5加密操作, 因为time模块所产生的时 ...
- having 的使用
.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 张三 数学 李四 语文 李四 数学 王五 语文 王五 数学 王五 英语 select n ...
- android上的bin/sbin/xbin等各种目录
1. /system是用于存储 由AOSP构建生成的 不可变组件的 主要Android目录.这包括本机二进制文件,本机库,框架包和存储主要的应用程序.它通常是从根文件系统的单独映像中以只读方式挂载的, ...
- org.hibernate.HibernateException: Duplicate identifier in table for: Waa
提示表的标识符重复,发现是数据库中的主键id重复了.因为是序列自动生成的. 我原本以为是因为我的序列的问题,序列.nextval()有问题,但是当我在数据库测试时,发现当前序列没有问题.但是当数据插入 ...
- 加壳软件-Virbox Protector Standalone
Virbox Protector Standalone 加壳工具 防止代码反编译,更安全,更方便 产品简介 Virbox Protector Standalone提供了强大的代码虚拟化.高级混淆与智能 ...
- Window Server配置Flask
1.安装了Chrome 2.安装git 3.创建SSH key:ssh-keygen -t rsa -C "youremail@example.com" 4.安装notepad++ ...
- gcc在64位系统上一个史诗级WARNING
如下图所示,可以看到y的地址在传入函数并被返回后,高32位被截断了,于是发生了Segment fault. 首次是在MAC OS X上发现的,本以为是MAX OS X编译器自己的策略,后来在64位Ub ...
- JavaIO流——简单对文件的写入及读取(二)
前文对Io字符流的输入进行了介绍,在这就不再讲了,简单的来写该怎么读取文件内容吧 public static void readFile(String Filename) throws IOExcep ...
- requests 获取百度推广信息
2019年的第一篇博客,恩,好久没写过博客了,恩,忘了,哈哈,实在是太懒了 今天写一个爬取百度推广数据的爬虫,当然我写的肯定不是那么的完美,但是能用,大哭 注意:有的时候,get或post方法获取数据 ...
- 理解JS深拷贝
前言: JS的拷贝(copy),之所以分为深浅两种形式,是因为JS变量的类型存在premitive(字面量)与reference(引用)两种区别.当然,大多数编程语言都存在这种特性. 众所周知,内存包 ...