zoukankan      html  css  js  c++  java
  • DEVOPS技术实践_20:串联多个job执行

    在jenkins可能会有战役中场景,就是在一个job执行完之后,把这个执行结果作为另一个job的执行条件

    比如A执行完,如果A执行成功,则执行B,如果失败则执行C

    1 前期准备

    A任务

    import hudson.model.*;
        pipeline{
        agent any
        environment {
        INPUT_JSON = "/tmp/test.json"
        }
        stages{
            stage("Hello Pipeline") {
                steps {
                    script {
                        println "Hello Pipeline!"
                        println env.JOB_NAME
                        println env.BUILD_NUMBER
                    }
                }
            }
     
        stage("Init paramters in json") {
            steps {
                script {
     
                    println "read josn input file"
                        json_file = INPUT_JSON? INPUT_JSON.trim() : ""
                        prop = readJSON file : json_file
                        name = prop.NAME? prop.NAME.trim() : ""
                        println "Name:" + name
                        age = prop.AGE? prop.AGE.trim() : ""
                        println "Age:" + age
                        phone = prop.PHONE_NUMBER? prop.PHONE_NUMBER.trim() : ""
                        println "Phone:" + phone
                        address = prop.ADDRESS? prop.ADDRESS.trim() : ""
                        println "Address:" + address
                        email = prop.EMAIL? prop.EMAIL.trim() : ""
                        println "Email:" + email
                        gender = prop.GENDER? prop.GENDER.trim() : ""
                        println "Gender:" + gender
                        is_marry = prop.IS_MARRY? prop.IS_MARRY.trim() : false
                        println "is_marry:" + is_marry
                        is_smoke = prop.SMOKE? prop.SMOKE : false
                        println "is_smoke:" + is_smoke
                    }
                }
            }
        stage("call a method") {
                steps {
                    script {
                        println "send the parameter as map type"
                        model_call = load env.JENKINS_HOME + "/moodlegroovy/model.groovy"
                        model_call.getUserInfo(name:name, age:age, phone:phone, address:address, email:email, gender:gender, is_marry:is_marry)
                    }
                }
            }
        stage("check serive up") {
                when {
                    expression {
                        return is_smoke
                    }
                }
                steps {
                    script {
                        sh "cat /etc/passwdsd"    #修改这里,可以控制此任务是success或者是false
                    }
                }
            }
         }
    }

    B 任务

    的构建结果

    C任务

    C的构建结果

    2 编写A任务的pipeline

     import hudson.model.*;
        pipeline{
        agent any
        environment {
        INPUT_JSON = "/tmp/test.json"
        }
        stages{
            stage("Hello Pipeline") {
                steps {
                    script {
                        println "Hello Pipeline!"
                        println env.JOB_NAME
                        println env.BUILD_NUMBER
                    }
                }
            }
     
        stage("Init paramters in json") {
            steps {
                script {
     
                    println "read josn input file"
                        json_file = INPUT_JSON? INPUT_JSON.trim() : ""
                        prop = readJSON file : json_file
                        name = prop.NAME? prop.NAME.trim() : ""
                        println "Name:" + name
                        age = prop.AGE? prop.AGE.trim() : ""
                        println "Age:" + age
                        phone = prop.PHONE_NUMBER? prop.PHONE_NUMBER.trim() : ""
                        println "Phone:" + phone
                        address = prop.ADDRESS? prop.ADDRESS.trim() : ""
                        println "Address:" + address
                        email = prop.EMAIL? prop.EMAIL.trim() : ""
                        println "Email:" + email
                        gender = prop.GENDER? prop.GENDER.trim() : ""
                        println "Gender:" + gender
                        is_marry = prop.IS_MARRY? prop.IS_MARRY.trim() : false
                        println "is_marry:" + is_marry
                        is_smoke = prop.SMOKE? prop.SMOKE : false
                        println "is_smoke:" + is_smoke
                    }
                }
            }
        stage("call a method") {
                steps {
                    script {
                        println "send the parameter as map type"
                        model_call = load env.JENKINS_HOME + "/moodlegroovy/model.groovy"
                        model_call.getUserInfo(name:name, age:age, phone:phone, address:address, email:email, gender:gender, is_marry:is_marry)
                    }
                }
            }
        stage("check serive up") {
                when {
                    expression {
                        return is_smoke
                    }
                }
                steps {
                    script {
                        sh "cat /etc/passwd"
                    }
                }
            }
         }
         post {
            always {
                script {
                    println "Do some actins when always need."
                }
            }
            failure {       #失败执行
                script {
                    println "failure will run JOB B"
                    jobB = build 'jenkins_pipeline_demo'
                    println jobB.getResult()
                }
            }
            success {          #成功执行
                script {
                    println "Here we kickoff run job C"
                    jobC = build 'pipelin-jenkinsfile'
                    println jobC.getResult()
                }
            }
        }
    }

    3 构建测试

    控制台输出

    Started by user darren ning
    Obtained when.jenkinsfile from git http://192.168.132.132/root/pipeline-parameter-test.git
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] Start of Pipeline
    [Pipeline] node
    Running on Jenkins in /root/.jenkins/workspace/pipeline_parameter_project
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    No credentials specified
     > git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
     > git config remote.origin.url http://192.168.132.132/root/pipeline-parameter-test.git # timeout=10
    Fetching upstream changes from http://192.168.132.132/root/pipeline-parameter-test.git
     > git --version # timeout=10
     > git fetch --tags --progress http://192.168.132.132/root/pipeline-parameter-test.git +refs/heads/*:refs/remotes/origin/*
     > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
     > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision 4a1e49c9e3de8e73ee084ad5c3d707700a9d171b (refs/remotes/origin/master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 4a1e49c9e3de8e73ee084ad5c3d707700a9d171b
    Commit message: "Update when.jenkinsfile"
     > git rev-list --no-walk 2e4c72c9ce6c473dd9eaef8805b9df0f5fd8ae44 # timeout=10
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Hello Pipeline)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Hello Pipeline!
    [Pipeline] echo
    pipeline_parameter_project
    [Pipeline] echo
    77
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Init paramters in json)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    read josn input file
    [Pipeline] readJSON
    [Pipeline] echo
    Name:Lucy
    [Pipeline] echo
    Age:18
    [Pipeline] echo
    Phone:13912345678
    [Pipeline] echo
    Address:Haidian Beijing
    [Pipeline] echo
    Email:lucy@demo.com
    [Pipeline] echo
    Gender:male
    [Pipeline] echo
    is_marry:false
    [Pipeline] echo
    is_smoke:false
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (call a method)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    send the parameter as map type
    [Pipeline] load
    [Pipeline] { (/root/.jenkins/moodlegroovy/model.groovy)
    [Pipeline] }
    [Pipeline] // load
    [Pipeline] echo
    
        Lucy come from Haidian Beijing, he is 18 old. he's phone number is
        13912345678, or you can contact he via lucy@demo.com, he is not marry yet.
        
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (check serive up)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] sh
    + cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    joy:x:1000:1000:joy:/home/joy:/bin/bash
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Declarative: Post Actions)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Do some actins when always need.
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Here we kickoff run job C
    [Pipeline] build (Building pipelin-jenkinsfile)
    Scheduling project: pipelin-jenkinsfile
    Starting building: pipelin-jenkinsfile #12
    [Pipeline] }
    [Pipeline] // script
    Error when executing success post condition:
    hudson.AbortException: pipelin-jenkinsfile #12 completed with status FAILURE (propagate: false to ignore)
        at org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerListener.onCompleted(BuildTriggerListener.java:52)
        at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:209)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:584)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1000(WorkflowRun.java:133)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:996)
        at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1463)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:458)
        at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:37)
        at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    failure will run JOB B
    [Pipeline] build (Building jenkins_pipeline_demo)
    Scheduling project: jenkins_pipeline_demo
    Starting building: jenkins_pipeline_demo #8
    [Pipeline] }
    [Pipeline] // script
    Error when executing failure post condition:
    hudson.AbortException: jenkins_pipeline_demo #8 completed with status UNSTABLE (propagate: false to ignore)
        at org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerListener.onCompleted(BuildTriggerListener.java:52)
        at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:209)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:584)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1000(WorkflowRun.java:133)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:996)
        at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1463)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:458)
        at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:37)
        at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    ERROR: pipelin-jenkinsfile #12 completed with status FAILURE (propagate: false to ignore)
    Finished: FAILURE

    执行完A,A成功,触发执行C,C失败,触发又执行B

    4 测试A失败,执行

    实验A执行失败,修改

     import hudson.model.*;
        pipeline{
        agent any
        environment {
        INPUT_JSON = "/tmp/test.json"
        }
        stages{
            stage("Hello Pipeline") {
                steps {
                    script {
                        println "Hello Pipeline!"
                        println env.JOB_NAME
                        println env.BUILD_NUMBER
                    }
                }
            }
     
        stage("Init paramters in json") {
            steps {
                script {
     
                    println "read josn input file"
                        json_file = INPUT_JSON? INPUT_JSON.trim() : ""
                        prop = readJSON file : json_file
                        name = prop.NAME? prop.NAME.trim() : ""
                        println "Name:" + name
                        age = prop.AGE? prop.AGE.trim() : ""
                        println "Age:" + age
                        phone = prop.PHONE_NUMBER? prop.PHONE_NUMBER.trim() : ""
                        println "Phone:" + phone
                        address = prop.ADDRESS? prop.ADDRESS.trim() : ""
                        println "Address:" + address
                        email = prop.EMAIL? prop.EMAIL.trim() : ""
                        println "Email:" + email
                        gender = prop.GENDER? prop.GENDER.trim() : ""
                        println "Gender:" + gender
                        is_marry = prop.IS_MARRY? prop.IS_MARRY.trim() : false
                        println "is_marry:" + is_marry
                        is_smoke = prop.SMOKE? prop.SMOKE : false
                        println "is_smoke:" + is_smoke
                    }
                }
            }
        stage("call a method") {
                steps {
                    script {
                        println "send the parameter as map type"
                        model_call = load env.JENKINS_HOME + "/moodlegroovy/model.groovy"
                        model_call.getUserInfo(name:name, age:age, phone:phone, address:address, email:email, gender:gender, is_marry:is_marry)
                    }
                }
            }
        stage("check serive up") {
                when {
                    expression {
                        return is_smoke
                    }
                }
                steps {
                    script {
                        sh "cat /etc/passwdsd"
                    }
                }
            }
         }
         post {
            always {
                script {
                    println "Do some actins when always need."
                }
            }
            failure {
                script {
                    println "failure will run JOB B"
                    jobB = build 'jenkins_pipeline_demo'
                    println jobB.getResult()
                }
            }
            success {
                script {
                    println "Here we kickoff run job C"
                    jobC = build 'pipelin-jenkinsfile'
                    println jobC.getResult()
                }
            }
        }
    }

    构建输出

    Started by user darren ning
    Obtained when.jenkinsfile from git http://192.168.132.132/root/pipeline-parameter-test.git
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] Start of Pipeline
    [Pipeline] node
    Running on Jenkins in /root/.jenkins/workspace/pipeline_parameter_project
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    No credentials specified
     > git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
     > git config remote.origin.url http://192.168.132.132/root/pipeline-parameter-test.git # timeout=10
    Fetching upstream changes from http://192.168.132.132/root/pipeline-parameter-test.git
     > git --version # timeout=10
     > git fetch --tags --progress http://192.168.132.132/root/pipeline-parameter-test.git +refs/heads/*:refs/remotes/origin/*
     > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
     > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision 227a5d7072890746c966827fda49a168f8999679 (refs/remotes/origin/master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 227a5d7072890746c966827fda49a168f8999679
    Commit message: "Update when.jenkinsfile"
     > git rev-list --no-walk 4a1e49c9e3de8e73ee084ad5c3d707700a9d171b # timeout=10
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Hello Pipeline)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Hello Pipeline!
    [Pipeline] echo
    pipeline_parameter_project
    [Pipeline] echo
    78
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Init paramters in json)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    read josn input file
    [Pipeline] readJSON
    [Pipeline] echo
    Name:Lucy
    [Pipeline] echo
    Age:18
    [Pipeline] echo
    Phone:13912345678
    [Pipeline] echo
    Address:Haidian Beijing
    [Pipeline] echo
    Email:lucy@demo.com
    [Pipeline] echo
    Gender:male
    [Pipeline] echo
    is_marry:false
    [Pipeline] echo
    is_smoke:false
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (call a method)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    send the parameter as map type
    [Pipeline] load
    [Pipeline] { (/root/.jenkins/moodlegroovy/model.groovy)
    [Pipeline] }
    [Pipeline] // load
    [Pipeline] echo
    
        Lucy come from Haidian Beijing, he is 18 old. he's phone number is
        13912345678, or you can contact he via lucy@demo.com, he is not marry yet.
        
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (check serive up)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] sh
    + cat /etc/passwdsd
    cat: /etc/passwdsd: No such file or directory
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Declarative: Post Actions)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Do some actins when always need.
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    failure will run JOB B
    [Pipeline] build (Building jenkins_pipeline_demo)
    Scheduling project: jenkins_pipeline_demo
    Starting building: jenkins_pipeline_demo #9
    [Pipeline] echo
    SUCCESS
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    ERROR: script returned exit code 1
    Finished: FAILURE

    5 测试都可以成功的job

    更换C为一个能执行成功的job

    修改jenkinsfile

     import hudson.model.*;
        pipeline{
        agent any
        environment {
        INPUT_JSON = "/tmp/test.json"
        }
        stages{
            stage("Hello Pipeline") {
                steps {
                    script {
                        println "Hello Pipeline!"
                        println env.JOB_NAME
                        println env.BUILD_NUMBER
                    }
                }
            }
     
        stage("Init paramters in json") {
            steps {
                script {
     
                    println "read josn input file"
                        json_file = INPUT_JSON? INPUT_JSON.trim() : ""
                        prop = readJSON file : json_file
                        name = prop.NAME? prop.NAME.trim() : ""
                        println "Name:" + name
                        age = prop.AGE? prop.AGE.trim() : ""
                        println "Age:" + age
                        phone = prop.PHONE_NUMBER? prop.PHONE_NUMBER.trim() : ""
                        println "Phone:" + phone
                        address = prop.ADDRESS? prop.ADDRESS.trim() : ""
                        println "Address:" + address
                        email = prop.EMAIL? prop.EMAIL.trim() : ""
                        println "Email:" + email
                        gender = prop.GENDER? prop.GENDER.trim() : ""
                        println "Gender:" + gender
                        is_marry = prop.IS_MARRY? prop.IS_MARRY.trim() : false
                        println "is_marry:" + is_marry
                        is_smoke = prop.SMOKE? prop.SMOKE : false
                        println "is_smoke:" + is_smoke
                    }
                }
            }
        stage("call a method") {
                steps {
                    script {
                        println "send the parameter as map type"
                        model_call = load env.JENKINS_HOME + "/moodlegroovy/model.groovy"
                        model_call.getUserInfo(name:name, age:age, phone:phone, address:address, email:email, gender:gender, is_marry:is_marry)
                    }
                }
            }
        stage("check serive up") {
                when {
                    expression {
                        return is_smoke
                    }
                }
                steps {
                    script {
                        sh "cat /etc/passwd"
                    }
                }
            }
         }
         post {
            always {
                script {
                    println "Do some actins when always need."
                }
            }
            failure {
                script {
                    println "failure will run JOB B"
                    jobB = build 'jenkins_pipeline_demo'
                    println jobB.getResult()
                }
            }
            success {
                script {
                    println "Here we kickoff run job C"
                    jobC = build 'jenkins_pineline_demo_utility'
                    println jobC.getResult()
                }
            }
        }
    }

    执行全部成功

    控制台输出

    Started by user darren ning
    Obtained when.jenkinsfile from git http://192.168.132.132/root/pipeline-parameter-test.git
    Running in Durability level: MAX_SURVIVABILITY
    [Pipeline] Start of Pipeline
    [Pipeline] node
    Running on Jenkins in /root/.jenkins/workspace/pipeline_parameter_project
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Declarative: Checkout SCM)
    [Pipeline] checkout
    No credentials specified
     > git rev-parse --is-inside-work-tree # timeout=10
    Fetching changes from the remote Git repository
     > git config remote.origin.url http://192.168.132.132/root/pipeline-parameter-test.git # timeout=10
    Fetching upstream changes from http://192.168.132.132/root/pipeline-parameter-test.git
     > git --version # timeout=10
     > git fetch --tags --progress http://192.168.132.132/root/pipeline-parameter-test.git +refs/heads/*:refs/remotes/origin/*
     > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
     > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
    Checking out Revision 632df80c513982664b30606fc6e38778e1bbc54d (refs/remotes/origin/master)
     > git config core.sparsecheckout # timeout=10
     > git checkout -f 632df80c513982664b30606fc6e38778e1bbc54d
    Commit message: "Update when.jenkinsfile"
     > git rev-list --no-walk 227a5d7072890746c966827fda49a168f8999679 # timeout=10
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] withEnv
    [Pipeline] {
    [Pipeline] stage
    [Pipeline] { (Hello Pipeline)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Hello Pipeline!
    [Pipeline] echo
    pipeline_parameter_project
    [Pipeline] echo
    79
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Init paramters in json)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    read josn input file
    [Pipeline] readJSON
    [Pipeline] echo
    Name:Lucy
    [Pipeline] echo
    Age:18
    [Pipeline] echo
    Phone:13912345678
    [Pipeline] echo
    Address:Haidian Beijing
    [Pipeline] echo
    Email:lucy@demo.com
    [Pipeline] echo
    Gender:male
    [Pipeline] echo
    is_marry:false
    [Pipeline] echo
    is_smoke:false
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (call a method)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    send the parameter as map type
    [Pipeline] load
    [Pipeline] { (/root/.jenkins/moodlegroovy/model.groovy)
    [Pipeline] }
    [Pipeline] // load
    [Pipeline] echo
    
        Lucy come from Haidian Beijing, he is 18 old. he's phone number is
        13912345678, or you can contact he via lucy@demo.com, he is not marry yet.
        
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (check serive up)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] sh
    + cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:999:997:User for polkitd:/:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    chrony:x:998:996::/var/lib/chrony:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    joy:x:1000:1000:joy:/home/joy:/bin/bash
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] stage
    [Pipeline] { (Declarative: Post Actions)
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Do some actins when always need.
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] script
    [Pipeline] {
    [Pipeline] echo
    Here we kickoff run job C
    [Pipeline] build (Building jenkins_pineline_demo_utility)
    Scheduling project: jenkins_pineline_demo_utility
    Starting building: jenkins_pineline_demo_utility #37
    [Pipeline] echo
    SUCCESS
    [Pipeline] }
    [Pipeline] // script
    [Pipeline] }
    [Pipeline] // stage
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // withEnv
    [Pipeline] }
    [Pipeline] // node
    [Pipeline] End of Pipeline
    Finished: SUCCESS

    测试完成

  • 相关阅读:
    [LeetCode] Merge Interval系列,题:Insert Interval,Merge Intervals
    [LeetCode] Simplify Path,文件路径简化,用栈来做
    [LeetCode] Sort Colors 对于元素取值有限的数组,只遍历一遍的排序方法
    [LeetCode] Largest Rectangle in Histogram O(n) 解法详析, Maximal Rectangle
    实现一个协程版mysql连接池
    Linux搭建kafka
    PHP信号管理
    virtual memory exhausted: Cannot allocate memory
    RSA 非对称加密,私钥转码为pkcs8 错误总结
    Git Flow 工作模型与使用
  • 原文地址:https://www.cnblogs.com/zyxnhr/p/11886305.html
Copyright © 2011-2022 走看看