jenkins自动打包部署流水线

项目代码

   

 流水线设计

  

#!groovy

//下载源码
String srcUrl = "${env.srcUrl}"
String branchName = "${env.branchName}"


//打包
String buildType = "${env.buildType}"
String buildShell = "${env.buildShell}"


pipeline {

    agent {
      node {
          label 'master'
      }
    }
    
    stages {
       stage('GetCode') {
            steps {
              script {  
                 checkout([$class: 'GitSCM', branches: [[name: '${branchName}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitlab', url: '${srcUrl}']]])
              }
            }
        }
        
       stage('Build') {
            steps {
              script {  
                  mvnhome = tool "M2"
                  sh "${mvnhome}/bin/mvn ${buildShell}"
                  
                   jarName = sh returnStdout: true, script: "cd target && ls *.jar"
                   jarName = jarName - "
"
                   sh "cp target/${jarName}  /root"
                   
              }
            }
        }
        
        stage('Test') {
            steps {
              script {  
                println("dan'yuan单元ce'shi")
              }
            }
        }
        
        stage('Deploy') {
            steps {
              script {  
                println("ansible bu shu......")
                sh "java -jar /root/${jarName}"
              }
            }
        }
        
    }
}
View Code

部署结果

Jenkins设置自己的全局环境变量

 maven打包问题处理

     

     

jenkins控制日志内容的输出

         有些执行命令的内容不方便在日志中打印出来

         sh "/home/jenkins/a.sh 2>&1 >/dev/null" 显示结果如下

         

         把需要执行的命令提取到一个单独的脚本进行调用即可

[jenkins]$ vi a.sh

#!/bin/bash +x
/usr/local/sbin/kubectl --kubeconfig /home/jenkins/kubectl/k8s-cluster/siem-cluster/kube_config_rancher-cluster.yml replace -f /home/jenkins/kubectl/k8s-cluster/siem-cluster/config-center.yml --force
echo "a.sh 执行完毕"
a.sh

详细的命令信息不再进行显示输出

原文地址:https://www.cnblogs.com/yxh168/p/13197328.html