jenkins pipeline流水线配置

荒凉一梦 提交于 2020-01-06 15:42:21

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一,jenkins任务创建,选择“流水线”

二,进行流水线脚本编写

参考流水线语法生成器,相关svn的配置语法如下:

三,安装ssh pipeline远程登录执行插件

最终脚本配置如下:

pipeline {
    agent any
    environment {
    Version="1.0.0.1"
   }
    stages {
        stage('SVN代码拉取') {
            steps {
            checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '724e0cad-7aef-46b4-b882-55bd0818d5f2', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'svn://172.20.4.111/docs']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
             }
        }
        stage('Maven代码构建') {
            steps {
                sh 'echo "maven buile"'
                sh '''
                    echo "Multiline shell steps works too"
                    ls -lah
                    pwd
                    pwd
                    pwd
                    pwd
                    /opt/apache-maven-3.6.3/bin/mvn clean
                    /opt/apache-maven-3.6.3/bin/mvn package
                    
                '''
            }
        }
        stage('Dockerimage镜像') {
            steps {
sh label: '', script: '''#!/bin/sh
REPOSITORY=172.20.4.67:5000/maven-test:1.0.0.1
WAR=`basename target/*.war`
echo ${REPOSITORY}
echo  ${Version}
# 构建镜像
cat > Dockerfile << EOF
FROM 172.20.4.67:5000/tomcat-85:latest
RUN rm -rf /usr/local/tomcat/webapps/*
COPY target/*.war /usr/local/tomcat/webapps/$WAR
CMD ["catalina.sh", "run"]
EOF
sudo docker build -t $REPOSITORY .
# 上传镜像
sudo docker push $REPOSITORY
echo "success !!!"'''
            }
        }

  stage ('Docker run') {

     agent none

     steps {

       script {

              def remote = [:]

              remote.name = 'test'

              remote.host ='172.20.4.67'

              remote.user = 'root'

              remote.password ='************'

              remote.allowAnyHosts= true

              sshCommand remote: remote, command:
              '''
                    echo "$Version"
                    echo "$Version"
                    echo "$Version"
                    docker image ls
                    REPOSITORY=172.20.4.67:5000/maven-test:1.0.0.1
                    # 部署
                    docker rm -f maven-test  |true
                    #docker image rm $REPOSITORY |true
                    docker container run -d --name maven-test  -p 7070:8080 $REPOSITORY
                    echo $REPOSITORY
              '''
          }

         }

      }
    }
}



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!