pipeline流水线编写

#!groovy
string workspace = "/opt/jenkins/wordspace"  // 自定义工作目录
pipeline {
    // ========agent语句块开始========
    agent {
        node {
            label "master"  // 指定运行节点的标签或者名称
            customWorkspace "${workspace}"  // 自定义工作目录,调用上面的变量(可选)
        }
    }
    // ======agent块结束======

    options {  // 运行选项按需指定,不是必须的
        timestamps()  // 日志会有时间,便于排查日志
        skipDefaultCheckout()  //删除隐式checkout scm语句,声明式的脚本默认会去检查有没有配代码库,如果有的话会自动下载代码,但我没有必要去让他下载,所以这里删除
        disableConcurrentBuilds()  // 禁止并行,根据项目需要,有些项目是不能并行的,可以使用这句。
        timeout(time: 1, unit: 'HOURS')  // 设置流水线超时时间,在企业中使用流水线时会遇到很多构建超时了,一直卡在那里,一直失败,这样会消耗很多资源,占用构建队列,导致构建队列出现堵塞这种情况,所以这里设置一小时超时,这个时间已经很长了。
    }
    // ===========options语句块结束==========

    // ============stages语句块开始《一个或多个》====================
    stages {
        stage("GetCode"){  // 这是第一个小阶段的名称
            steps{  // 步骤
                timeout(time:5,unit:"MINUTES"){  // 步骤超时时间
                    script{  // 填写运行代码
                        println("获取代码")
                    }
                }
            }
        }
        //  第一个小阶段结束

        stage("Build"){
            steps{
                timeout(time:20, unit:"MINUTES"){
                    script{
                        println("应用打包")
                    }
                }
            }
        }
        //  第二个小阶段结束

        stage("CodeScan"){
            steps{
                timeout(time:30, unit:"MINUTES"){
                    script{
                        print("代码扫描")
                    }
                }
            }
        }
        //  第三个小阶段结束
    }

    //  ======================stages阶段结束================

    //  ===============构建后执行post===================
    post {
        //  always指不管结果如何都执行
        always {
            script{
                println("always")
            }
        }
        //  always语句块结束

        //  success指构建成功才会执行,一般在企业中可能会触发一个状态作一个变更
        success {
            script{
                currentBuild.description += "\n 构建成功!"  // currentBuild是一个全局变量,description是构建描述
            }
        }
        //  success语句块结束

        //  failure指构建失败时执行,例如通知管理员
        failure {
            script{
                currentBuild.description += "\n 构建失败!"
            }
        }
        //  failure语句块结束

        //  aborted指任务取消时执行,一般也会做一个通知,和构建失败的对待方式差不多,如果有什么资源需要回收的可以写在这里
        aborted {
            script{
                currentBuild.description += "\n 构建取消"
            }
        }
        //  aborted语句块结束
    }
    //  ================post语句结束=======================
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f4ck3sdn

初心:希望为更多人知识解惑

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值