jenkins_pipeline实例_java

 1 pipeline {
 2   agent any
 3   environment {
 4 
 5     project_name = 'PhoenixTree'  #PhoneixTree 自定义的项目名
 6   }
 7   stages {
 8     stage ('拉取代码、打包') {
 9       steps {
10 
11         #这里git拉代码,在pipeline表单下面有个 pipeline 语法的连接,自己生成
12         git credentialsId: 'git_key', url: 'ssh/https_gitdir'
13 
14         #这里使用sh后可以直接执行linux命令
15         sh '''
16         CODE_DIR=/var/jenkins_home/workspace/Deploy-PhoenixTree-Testing/
17         mvn clean install -Dmaven.test.skip=true
18         cd ${CODE_DIR}/phoenix-tree-api/target
19         mv phoenix-tree-api-0.0.1.war phoenix-tree-api-${BUILD_NUMBER}.war
20         '''
21       }
22     }
23 
24     stage ('项目项目部署'){
25       steps {
26         sshPublisher(
27           publishers: [
28 
29             #这里需要现在jenkins中配置服务器之后才能连接,后面和正常手动上线过程类似
30             sshPublisherDesc(configName: 'ALIYUN_IP', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''source /etc/profile
31             cd ~/release/ 
32             let "delete_count=`ls -l project.war | wc -l` -5"
33 
34             if [ ${delete_count} -gt 0 ]; then
35               ls -tR project*.war | tail -n ${delete_count} | xargs rm -f
36             fi
37 
38             rm project.war
39             cp project-${BUILD_NUMBER}.war project.war
40             cd /usr/local/tomcat-project
41 
42             STATE=$(ps aux | grep tomcat-project| grep -v grep | wc -l)
43             if [ $STATE -gt 0 ]; then
44               ps aux | grep tomcat-project| grep -v grep | awk \'{print $2}\' | xargs kill -9
45               echo "tomcat kill success!"
46             else
47               echo "tomcat $BASE_DIR pid not exsit"
48             fi
49             sleep 3
50             cp ~/release/project.war /usr/local/tomcat-project/webapps/
51             ./bin/startup.sh
52             chown -R test.testwork/Catalina/localhost/project/
53 
54             #下面这行命令(execTimeout)也是在jenkins中pipeline插件生成
55             ps -ef|grep tomcat''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'release', remoteDirectorySDF: false, removePrefix: 'phoenix-tree-api/target/', sourceFiles: "phoenix-tree-api/target/phoenix-tree-api-${BUILD_NUMBER}.war")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)
56           ]
57         )
58       }
59     }
60   }
61 
62   #下面的部分是pipeline发版bearychat报警的
63 
64   post {
65     unstable {
66       bearychatSend color: 'red', message: "${env.JOB_NAME},构建不稳定"
67     }
68     failure {
69       bearychatSend color: 'red', message: "${env.JOB_NAME},构建失败"
70     }
71   }
72 }

 

posted @ 2020-12-23 11:26  风儿飘  阅读(521)  评论(0编辑  收藏  举报