Jenkins pipeline 纯代码拿走即用

Posted wst021sh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins pipeline 纯代码拿走即用相关的知识,希望对你有一定的参考价值。

前言

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

关于 Jenkins

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

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

创建 Job 工程

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


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

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

全部配置完成后,点击 Save 按钮保存配置即可。

下面分享我的 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")
println("$ansi_color.red****$message****$ansi_color.res")

// 清理工作空间
def clean_dir()
log("info", "start clean workspace")
deleteDir()
log("info", "end clean workspace")
// params.each
// my_params.add(string(name: it.key, value: it.value))
//

def send_mail()
def user = "wst021@zoho.com"
def email_subject = "FAILED: Job $env.JOB_NAME - Build #$env.BUILD_NUMBER]"
if ("$msg" == "")
email_subject = "SUCCESSED: Job [$env.JOB_NAME - Build #$env.BUILD_NUMBER - $params.PROJECT_NAME]"

emailext (
subject: "$email_subject",
mimeType: text/html,
attachLog: true,
compressLog: false,
body: """
<div style="font-family:黑体">
<ul>
<li>下载地址: http://192.203.71.24:18081/artifactory/devpackage/$BUILDDATE</li>;
$msg
</ul>
</div>
""",
to: "$user",
from: "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 scprit_run"

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


def scprit_sonar()
msg = "echo scprit_sonar"

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


def scprit_docker()
msg = "echo scprit_docker"

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 scprit_deploy()
msg = "echo scprit_deploy"

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


// **start****
pipeline
agent
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")
        
    

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

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

以上是关于Jenkins pipeline 纯代码拿走即用的主要内容,如果未能解决你的问题,请参考以下文章

拿走即用的代码

... 使用mybatis框架完成学生信息的增删改查操作的完整代码书写-代码拿走即用-看完秒懂哦

十个超级简单的Python代码,拿走即用

10个极简python代码,拿走即用

使用mybatis框架完成学生信息的增删改查操作的完整代码书写-代码拿走即用-看完秒懂哦

使用mybatis框架完成学生信息的增删改查操作的完整代码书写-代码拿走即用-看完秒懂哦