本篇介绍 Jenkins 流水线项目的配置及流水线脚本语法规则。至于 Jenkins 的安装及其它配置,我之前写过一篇文章可以查看。 https://www.yuque.com/testpu/pro/bo7lzr ,以下,演示也是基于这篇文章中介绍的 Jenkins 配置为准。

1、流水线项目配置

安装完流水线的插件可以,创建项目时会出现对应的流水线项目选项,如下:

输入名称,api_pipeline_dev 选中,流水线,即可创建对应项目。

至于,其它配置,如,git拉取代码,jdk,maven、远程服务器等,查看我的上一篇文章,这里只介绍 Jenkins 流水线项目的创建及流水线脚本。

2、流水线 api-jar包打包脚本

下面是 api jar包的构建及部署脚本。

pipeline {agent anystages {stage('拉取代码') {steps {checkout([$class: 'GitSCM', branches: [[name: '*/dev']], extensions: [], userRemoteConfigs: [[credentialsId: '32d07987c09', url: 'http://192.8.8.8:8080/git/api']]])echo '拉取代码成功'}}stage('编译构建') {steps {echo "${env.WORKSPACE}" //用于打印 Jenkins 工作目录,没啥实质用处sh 'mvn -f spomlile/pom.xml clean install'echo '编译成功'}}//stage('项目部署') {//Jenkins 的ssh插件来实现部署jar包,就是这里配置后生成脚本 https://www.yuque.com/testpu/pro/lsigkl#xidkx//steps {//sshPublisher failOnError: true, publishers: [sshPublisherDesc(configName: '211.4docker', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/api/spomlile-all/', remoteDirectorySDF: false, removePrefix: 'spomlile/spomlile-all/target', sourceFiles: 'spomlile/spomlile-all/target/spomlile-all-0.1.0-exec.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]//echo '项目部署成功'//}//}        stage('项目部署') {//执行远程服务器上的脚本来实现部署steps {sh '''ssh root@192.168.211.4 "nohup sh /data/api/scp_from_211.3_api_pipeline.sh & sleep 1"sleep 3'''}}                }
}

2.1脚本说明:

1、编译构建脚本中这个命令非常关键,如果你的项目工程存在多个微服务,那么你从 Git 仓库拉取下来的代码多了一层目录(根目录中不会有 pom.xml 这个文件),此时必须要指定这个文件的位置,否则 maven 识别不了,哈哈哈哈。用如下的方式指定该文件的位置,比如:

# 指定pom.xml文件的位置,基于Jenkins工作目录的相对目录
'mvn -f litemall/pom.xml clean install'

2、部署脚本有两种实现方法,一种是直接用 Jenkins 的ssh插件,传输 jar 到远程服务器(上面脚本注释的部分),另外一种是在远程服务器上写好部署脚本,用 Jenkins 执行远程服务器上的部署脚本,按自己项目需求二选一。

远程服务器上的部署脚本如下。

#!/bin/bashhost='192.8.8.8'
name='booksmpil-all-5.1.0-exec.jar'
dir='booksmpil'
DT=`date +%Y%m%d%H%M`if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenjava_pid=`ps -ef | grep $name | grep -v "grep" | awk '{print $2}'`echo "kill -9 的pid:" $java_pidkill -9 ${java_pid}
fi
echo '【开始暂停jar包】'if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenecho "Tomcat stop failed.Please check the problem."exit 5
ficd /data/api
cmd='mv '$dir' bk/'$dir'_'$DT
echo $cmd
eval $cmd
echo '【项目备份完成】'sleep 3if [ ! -d booksmpil ]; thenmkdir $dir
fisleep 3scp -rq root@$host:/data/jenkins/jenkins_home/workspace/api_pipeline_dev/booksmpil/booksmpil-all/target/$name /data/api/$dir
sleep 2
echo '【项目部署完成】'sleep 2cd /data/api/$dir
cp /data/api/confbk/appconifg-all.yml ./appconifg-core.yml
echo '【备份配置完成】'source /etc/profile
nohup java -jar $name >/dev/null &
if ps -ef|grep $name |grep -v "grep" &>/dev/null; thenecho '【启动jar包】'
fiNR=`ps -ef | grep "${name}" | grep -v grep | wc -l`
if [ "$NR" -eq 1 ]
thenecho '【启动成功】'
elseecho '【启动失败】'
fi

3、流水线脚本语法生成

Jenkins 自带流水线语法生成插件,入口项目配置-流水线-流水线语法

3.1Git拉取代码脚本生成

选中红框中的步骤,然后依次填写Git仓库的信息,点击 ‘生成流水线脚本’即可。

3.2执行 shell 脚本生成

选中红框中的步骤,然后写你要执行的 shell 脚本,点击生成即可。

3.3向远程服务器发布jar包脚本生成

依次填写远程服务器的配置、远程目录、源文件地址等信息后,点击生成。

还有很多流水线脚本生成语法,按需生成。


读后感

来这里找我交流

  • QQ群:330374464
  • 公众号:软件测试资源站(ID:testpu)
  • 阿里语雀:https://www.yuque.com/testpu/pro

Docker 搭建 Jenkins 流水线项目配置相关推荐

  1. docker搭建jenkins

    docker搭建jenkins实现持续集成.持续部署 一.搭建jenkins 1.使用docker安装jenkins 2.查看jenkins容器是否正常启动 3.查看jenkins的初始密码 4.登录 ...

  2. 使用 docker 搭建jenkins 自动化工具

    一.jenkins Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成. 大家在工作中,应该都有 ...

  3. 这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?

     一.为什么用jenkins 主要是我们现在的项目都是采用手动部署的,每当给项目中新增一个功能就必须执行(打包--测试--上传测试修复的包到指定服务器--部署上线),这个流程操作起来繁杂,不小心就可能 ...

  4. Docker搭建jenkins(Vue自动化部署)

    前言 需要提前准备的条件 Docker环境 Docker官网:https://hub.docker.com/u/library 一.jenkins镜像 # 查询镜像 docker search jen ...

  5. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

  6. docker 搭建Jenkins持续集成平台

    Jenkin是一个开源的CI&CD平台,提供持续集成和持续交付服务,有大量的插件来支持构建,部署,自动化等项目需求,自动化测试也可以利用Jenkins来自动构建执行,免去人工执行. 1.部署J ...

  7. win10使用docker搭建jenkins,实现自动化部署

    环境准备: win10 docker gitee 一台服务器 安装jenkins配置环境 首先你自己的需要在电脑上搭建docker的环境,这边就不介绍docker了. 接下来就是搜索镜像,安装jenk ...

  8. linux系统下docker搭建vue前端项目开发运行环境详解

    1. 初衷 最近做了几个前后端项目,在前后端项目链条的时候,发现在windows系统下安装前端发过来的vue项目的依赖的时候各种报错, npm install一直无法安装,但是我在linux系统下面安 ...

  9. jenkins构建项目配置及推送阿里云镜像仓库

    使用阿里云的k8s,更新一个项目需要如下步骤: 1.先更新代码 2.再将代码打包生成一个docker镜像,推送到阿里云镜像仓库(私有的) 3.在阿里云上使用新的镜像新启一个docker,并把老的doc ...

最新文章

  1. realloc,malloc,calloc的区别
  2. Qt之对话框设计——淡入淡出效果
  3. 电视盒子root_电视盒子 免root 去广告换桌面,20分钟还原干净清爽的桌面
  4. scala学习-类与对象
  5. php保存复制粘贴的网页内容,JS实现网站内容的禁止复制和粘贴、另存为
  6. 环信SDK 踩坑记webIM篇(三)
  7. C/C++ 创建两个链表,实现两个链表低位到高位相加,并输出链表
  8. 委托和事件的一些理解笔记
  9. 64位 java 数据类型_java 数据类型
  10. 辗转相除法求最大公因数
  11. 关于EasyRecovery工具数据恢复的原理
  12. 高精度ua级恒流源_高精度低温漂CMOS电流源的设计
  13. 【Tushare 大数据社区——解救你的财经数据需求】
  14. 烧录软件BlueSuite.WIN.3.3 Installer_3.3.14.1471
  15. 渲染02-内置Uniform
  16. 2021象山中学高考成绩查询,2019年象山中学高考喜报、二本上线人数1424人
  17. android 解析json 日期格式,如何将JSON格式的日期字符串解析为日期格式
  18. 汉寿计算机职业中专,汉寿县职业中等专业学校2021年招生简章
  19. VMware Workstation 未能启动 VMware Authorization Service解决方法
  20. 百度语音识别开放平台SDK用法

热门文章

  1. Java中tif转png,tif格式图片转换为gif、png、jpg格式(Java实战)
  2. python压缩文件tar_python 实现tar文件压缩解压的实例详解
  3. 【游戏开发小技】TexturePacker生成的图集逆向切分成精灵小图(json | python | PIL | TextureUnPacker | 逆向 | 切图)
  4. 【转】智能合约灵活升级
  5. 学计算机专业用什么u盘,介绍几款比较不错的U盘品牌-电脑自学网
  6. OpenMMLab简介
  7. Spring整合JMS(二)——消息监听器
  8. 13.6.3 程序案例:BLE低功耗蓝牙调试助手
  9. 面向可维护性的设计模式
  10. 关于SimpleDateFormat格式化无法精确到微妙、纳秒的处理