美文网首页
Jenkins打包pipeline方式

Jenkins打包pipeline方式

作者: 南瓜pump | 来源:发表于2022-07-28 15:16 被阅读0次

    Jenkins打包使用pipeline方式
    使用pipeline方式可以自定义git参数(可以用depth参数解决由于.git文件太大导致clone失败的问题:git clone --depth)。

    • 新建任务


      流水线
    • Pipeline script脚本配置:
      其中credentialsId是证书ID,可以在“系统管理-Manage Credentials”菜单查看配置的证书ID;extensions里面可以填入git参数,比如depth。


      脚本配置
    # 前端脚本示例
    pipeline { 
       agent any 
       
       stages { 
            stage('拉取代码') { 
                steps { 
                    checkout([$class: 'GitSCM',
                        branches: [[name: 'feature/flow']],
                        extensions: [[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
                        userRemoteConfigs: [[credentialsId:'526634df-a2c3-4bc2-bbe0-611a01fcd148',url:'https://gitee.com/****.git',branch:"develop"]]])
                } 
            }
            stage('编译构建') { 
                steps { 
                    sh 'npm install;npm run build;'
                } 
            }
            stage('项目部署') {
                steps { 
                    sh 'rm -rf /var/we-safer/package/portal/dist;'
                    sh 'cp -r /var/lib/jenkins/workspace/portal-cooperate-pipeline/dist /var/package/portal/dist'
                }
            }
       }
    }
    
    # 后端脚本示例
    pipeline {
       agent any 
       
       stages {
            stage('拉取代码') {
                steps {
                    checkout([$class: 'GitSCM',
                        branches: [[name: 'feature']],
                        extensions: [[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
                        userRemoteConfigs: [[credentialsId:'526634df-a2c3-4bc2-bbe0-611a01fcd148',url:'https://gitee.com/****.git',branch:"develop"]]])
                }
            }
            stage('编译构建') {
                steps {
                   sh '/usr/local/src/apache-maven-3.8.5/bin/mvn clean package'
                }
            }
            stage('项目部署') {
                steps { 
                  sh 'echo \'containerId is ........................\' $(docker ps | grep uaa-web$ | awk \'{print $1}\')'
                  sh 'if [ $(docker ps| grep uaa-web$ | awk \'{print $1}\') ];then docker stop `docker ps| grep uaa-web$ | awk \'{print $1}\' `; echo \'stop uaa-web\'; fi'
                  sh 'if [ $(docker ps -a | grep uaa-web$ | awk \'{print $1}\') ];then docker rm uaa-web;echo \'rm uaa-web\'; fi'
                  sh 'cd /var/lib/jenkins/workspace/wwyt-service-cooperate-pipeline/uaa-web; docker build -t uaa-web -f Dockerfile .;'
                  sh 'docker run -d -p 8902:8902 --name=\'uaa-web\' uaa-web --spring.profiles.active=prod-;'
                }
            }
       }
    }
    

    相关文章

      网友评论

          本文标题:Jenkins打包pipeline方式

          本文链接:https://www.haomeiwen.com/subject/oerxwrtx.html