Jenkins配置pipeline选择git分支发布

最近去了一家新的公司,公司发布方式比较原始,就是拖war包到服务器上面,这个我还能忍受、、问题是网速奇慢无比,于是决定自己弄一套jenkins玩玩.

具体代码在我的博客
由于项目是在gitlab上面,一个项目很多同事都需要发布,而且分支肯定是不一样的,这就需要支持用户选择自己的分支去发布。这篇文章就是介绍如何配置和支持选择分支发布的.
准备工作:

- 安装jenkins 这里面就不说了,网上教程很多。
- 安装git parmater的插件。

配置工作:

- 新建pipeline,选择参数化构建过程,这里面可以选择的功能很多。我们选择Git parmater 
- 流水线的定义中 我们选择pipeline script,在这个里面我们输入自定义的脚本,但是大致都是拉取代码,构建代码,和发布代码  

这里面我们举一个简单的例子,脚本如下:

pipeline {
    agent any
    parameters {
        gitParameter branchFilter: 'origin/(.*)', defaultValue: 'develop', name: 'BRANCH', type: 'PT_BRANCH'
    }
    stages {
        stage('Checkout') {
            steps {
                echo '开始拉取代码.....'
                git branch: "${params.BRANCH}", credentialsId: '85205ecb-ef06-4dba-ad74-23983ea3de19', url: 'http://10.200.1.192/xxx/xxx.git'
            }
        }        
        stage('Build') {
            steps {
                echo '开始执行打包操作.......'
                sh 'mvn clean package -U' 
            }
        }
       
        stage('Deploy') {
            steps {
                sh 'scp {项目路径}/target/{war或者jar} [email protected]:/opt/wars/{远程服务器的一个文件夹}'
                sh 'ssh [email protected] "sh /opt/wars/{远程服务器的一个文件夹}/deploy.sh" '
                echo '测活成功'
            }
        }
    }
}

其中deploy.sh的代码文件如下:

echo '开始备份war..........................'
appName={应用名}
bakPath={文件备份的路径}
appPath={应用程序路径}
cp -f  ${appPath}/webapps/***.war ${bakPath}/bak/
sleep 3s
echo '正在停止服务................'
tomcat_id=`ps -ef | grep ${appName} | grep -v "grep" | awk '{print $2}'`
kill -9 $tomcat_id
sleep 1s
cp -f ${bakPath}/***.war ${appPath}/webapps
sleep 5s
export  JAVA_HOME=/usr/local/jdk1.8.0_152
export  JRE_HOME=/usr/local/jdk1.8.0_152/jre
sh ${appPath}/bin/startup.sh
tail -fn 0 --pid=`ps uxh|grep 'sed[[:space:]]\/startup'|awk '{print $2}'|sort -nr|head -1` ${appPath}/logs/catalina.out|sed /startup[[:space:]]in/Q
exit

 

你可能感兴趣的:(技术随笔,git,jenkins,git,paramter,发布)