Jenkins pipeline 纯代码拿走即用

前言

Jenkins pipeline 有太多介绍说明了,我就不在照葫芦画瓢多此一举在这与各位介绍了。我就直接上我的 Job 代码,拿走修改一些设置,就能上生产环境使用了,纯干货分享,不浪费各位同学的时间。

关于 Jenkins

首先,看一下我的 Jenkins 版本信息,给各位一个肯定的参考。

下面直接操练linux系统,一步一步详细分享。

创建 Job 工程

点击左边菜单栏 New Item ,绿色箭头所指选项。


弹出如下创建项目配置窗口,在绿色标注的文本框里输入项目名称,在选择黄色标注的 Pipeline 风格,点击下面的 OK 按钮,就可以创建好一个空的 Pipeline 风格的工程了。

接着打开刚才创建的 Job ,完善更多的参数途岳参数配置配置,如下是完整的探岳参数配置参数选项配置。按你项目实际的需求进行配置即可。

全部配置完成后,点击 Savlinux系统e 按钮保存配置即可。

下面分享途岳参数配置我的 Pipeline script 完整代码。

// 日志
def log(def level, def message) {
// 定义日志输出颜色
def ansi_color = ["red": "\033[31m", "green": "\033[32m", "yellow": "\033[33m", "blue": "\033[34m", "res": "\033[0m"]
if("${level}" == "info") {
println("${ansi_color.green}****${message}****${ansi_color.res}")
} else if("${level}" == "warnning系统运维包括哪些内容") {
pgithub永久回家地址rintln("${ansi_color.red}****${message}****${ansi_color.res}")
}
}

// 清理工作空间
def clean_dir() {
log("info", "start clean workspace")
deleteDilinux虚拟r()
log("info", "end clean workspace")
// pa系统运维工程师rams.each {
// my_paralinux虚拟ms.add(string(name: it.key,docker是干什么的 value: it.value))
// }
}

def send_mail() {
def user = "wst021@zoho.com"
def email_subject = "Fgit命令AILED: Job '${env.JOB_NAME} - Builinuxld #${env.BUILD_NUMBER}]'"
if ("${msg}" == "") {
email_subjlinux必学的60个命令ect = "SUCCESSED: Job '[${env.JOB_NAME} - Build #${env.BUILD_NUMBER} - ${params.PROJECT_NAME}]'"
}
emailext (
subject: &qgit命令uot;${email_subject}",
mimeType: 'text/html',
attachLog: true,
compressLog: false,
body: "8p参数配置""
<div style=系统运维工程师"fontlinux是什么操作系统-family:黑体">
<ul&ggitlabt;
<li>下载地址: http://192.203.71.24:18081/artifactory/devpackage/docker容器${BUILDDAxs参数配置TE}</li>
${msg}
</ul&linux创建文件gt;
</div>
""参数配置",
tdocker面试题o: "${user}",
from: &linux重启命令quot;jenkins@admin.com"
)
}
def scprit_check() {
msg = "echo scprit_check"

sh """
    git clone http://${user_name}:${password_p}@192.203.72.162:8068/root/mvnwebapp.git --depth 1 --branch master mvnwebapp
"""

}
def scprit_run() {
msg = "echo s系统运维工作内容cprit_run"

sh """
    cd ${env.WORKSPACE}/${repo_name} && mvn clean compile package -DskipTests=true
"""

}
def scprit_sonar() {docker常用命令
msg = "echo scprit_sonar"

sh """
    cd ${env.WORKSPACE}/${repo_name} && echo "sonarqube"
"""

}
def scprit_docker() {
msg = "echo scprit_docdocker是干什么的ker"

sh """
    cd ${env.WORKSPACE}/${repo_name} && echo "docker"
"""

}
def scprit_artifactory() {
msg = "echo scprit_artifactory"

sh """
    cd ${env.WORKSPACE}/${repo_name} && echo "scprit_artifactory"
"""

}
def scpgitrit_deploy() {
m系统运维是干嘛的sg = "echo scpritlinux系统安装_deploy"

sh """
    cd ${env.WORKSPACE}/${repo_name} && cp -rf target/*.war scm@192.203.77.25/data/${repo_name}_${BUILDDATE}
"""

}
// **start****
pipeline {
agentlinux命令 {
node {
label "master"
}
}

environment {
    BUILDDATE = sh(script: "date +%Y%m%d", returnStdout: true).trim()
    BUILDTIME = sh(script: "date +%Y%m%d%H%M%S", returnStdout: true).trim()
    LC_ALL="C.UTF-8"
    LANG="C.UTF-8"
}
parameters {
    string(name: "REPO_NAME", defaultValue: "mvnwebapp", description: "gitlab中的git仓库名称")
    string(name: "BRANCH_NAME", defaultValue: "master", description: "source仓库主干分支")
    string(name: "USER_NAME", defaultValue: "", description: "用户名")
    string(name: "PASSWORD_P", defaultValue: "", description: "用户密码")
}
options {
    ansiColor('xterm')
    disableConcurrentBuilds()
}
stages {
    stage("Clean") {
        steps {
            dir("${env.workspace}") {
                script {
                    clean_dir()
                }
            }
        }
    }
    stage("CheckOut") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_check()
                }
            }
        }
    }
    stage("Build") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_run()
                }
            }
        }
    }
    stage("SonarQube") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_sonar()
                }
            }
        }
    }
    stage("Push Docker") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_docker()
                }
            }
        }
    }
    stage("Push Artifactory") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_artifactory()
                }
            }
        }
    }
    stage("Deploy") {
        steps {
            dir("${env.workspace}") {
                script {
                    scprit_deploy()
                }
            }
        }
    }
}
post {
    success {
        script {
            println("success")
        }
    }
    failure {
        script {
            println("failure")
        }
    }
    always {
        script {
            send_mail()
            // println("test")
        }
    }
}

}linux创建文件

参数配置保存后,点击如下的构建按钮,触发 pipeline 的编译。系统/运维


                                            Jenkins pipeline 纯代码拿走即用

等 Job 顺系统运维包括哪些内容利的编译完成,就会显示如下图所示的界gitlab面,说明工程编译验证一切正常,相关的功能也都按 pipeline 设定参数执行了。


                                            Jenkins pipeline 纯代码拿走即用