Docker 搭建 Jenkins 流水线项目配置

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


1、流水线项目配置

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

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

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

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

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

2.1脚本说明:

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

# 指定pom.xml文件的位置,基于Jenkins工作目录的相对目录

'mvn -f litemall/pom.xml clean install'

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

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

#!/bin/bash

host='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; then

  java_pid=`ps -ef | grep $name | grep -v "grep" | awk '{print $2}'`

  echo "kill -9 的pid:" $java_pid

  kill -9 ${java_pid}

fi

echo '【开始暂停jar包】'

if ps -ef|grep $name |grep -v "grep" &>/dev/null; then

  echo "Tomcat stop failed.Please check the problem."

  exit 5

fi

cd /data/api

cmd='mv '$dir' bk/'$dir'_'$DT

echo $cmd

eval $cmd

echo '【项目备份完成】'

sleep 3

if [ ! -d booksmpil ]; then

  mkdir $dir

fi

sleep 3

scp -rq root@$host:/data/jenkins/jenkins_home/workspace/api_pipeline_dev/booksmpil/booksmpil-all/target/$name /data/api/$dir

sleep 2

echo '【项目部署完成】'

sleep 2

cd /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; then

  echo '【启动jar包】'

fi

NR=`ps -ef | grep "${name}" | grep -v grep | wc -l`

if [ "$NR" -eq 1 ]

then

        echo '【启动成功】'

else

        echo '【启动失败】'

fi

3、流水线脚本语法生成

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

3.1Git拉取代码脚本生成

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

3.2执行 shell 脚本生成

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

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

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

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


读后感

来这里找我交流

QQ群:330374464

公众号:软件测试资源站(ID:testpu)

CSDN:https://blog.csdn.net/mcfnhm

语雀:https://www.yuque.com/testpu/pro

你可能感兴趣的:(Docker 搭建 Jenkins 流水线项目配置)