V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laters
V2EX  ›  DevOps

jenkins 如何在一个任务中创建多个构建触发器,并且每个构建触发器对应的步骤是不同的

  •  
  •   laters · 2023-03-29 09:07:17 +08:00 · 2075 次点击
    这是一个创建于 603 天前的主题,其中的信息可能已经有所发展或是发生改变。
    11 条回复    2023-03-29 19:03:31 +08:00
    laters
        1
    laters  
    OP
       2023-03-29 09:15:58 +08:00
    在一个任务中,我想要三个触发器,三个不同的步骤

    1 、Common build setp 1 - setp3
    2 、Timing build setp 4 - setp7
    3 、Specified rule construction setp 8 - setp11
    securityCoding
        2
    securityCoding  
       2023-03-29 10:08:49 +08:00 via Android   ❤️ 1
    Pipeline ?
    laters
        3
    laters  
    OP
       2023-03-29 10:15:52 +08:00
    @securityCoding Pipeline 中如何能区分对应的构建步骤,有类似的 demo 吗 ? 谢谢
    tlxxzj
        4
    tlxxzj  
       2023-03-29 10:37:35 +08:00
    def trigger1 = false
    def trigger2 = false
    def trigger3 = false

    def causes = currentBuild.rawBuild.getCauses()
    for(cause in causes) {
    def desc = cause.properties.shortDescription
    if (desc =~ "trigger1") {
    trigger1 = true
    } else if(desc =~ "trigger2") {
    trigger2 = true
    } else if(desc =~ "trigger3") {
    trigger3 = true
    }
    }

    pipeline {
    agent any
    stages {
    stage("common") {
    steps {
    echo "common step"
    }
    }
    stage("trigger1") {
    when {
    expression { trigger1 == true }
    }
    steps {
    echo "trigger1 step"
    }
    }
    stage("trigger2") {
    when {
    expression { trigger2 == true}
    }
    steps {
    echo "trigger2 step"
    }
    }
    stage("trigger3") {
    when {
    expression { trigger3 == true }
    }
    steps {
    echo "trigger3 step"
    }
    }
    }
    }
    tlxxzj
        5
    tlxxzj  
       2023-03-29 10:38:20 +08:00
    差不多这样吧,用 when 控制
    laters
        6
    laters  
    OP
       2023-03-29 10:42:56 +08:00
    @tlxxzj 感谢,我大概明白这个意思了,除了 pipeline 还有别的方式可以实现这种吗? 关于这部分你那边有没有相关的文档可以学习下
    tlxxzj
        7
    tlxxzj  
       2023-03-29 10:59:25 +08:00
    @laters
    你可以在 job 里执行 python,ruby...脚本,然后在脚本里控制流程吧
    https://www.jenkins.io/doc/book/pipeline/syntax/
    w292614191
        8
    w292614191  
       2023-03-29 11:24:53 +08:00
    @securityCoding #2 应该是这个
    vishun
        9
    vishun  
       2023-03-29 15:13:56 +08:00
    最好是月度官方 pipeline 文档。也可以参考下[windows 下 jenkins 通过 pipeline 来部署和回滚 maven 、npm 、小程序项目]( https://www.cnblogs.com/vishun/p/16422561.html),里面有参数化构建的相关示例。
    securityCoding
        10
    securityCoding  
       2023-03-29 18:54:54 +08:00 via Android
    @laters stage 可以加判断语句,你瞅瞅官方文档
    defunct9
        11
    defunct9  
       2023-03-29 19:03:31 +08:00
    千万别用这种 groovy 得玩意,只能再 jenkins 上玩。换到 circle ci 、gitlab 、cloudbuild 完全不适用,还是用 Docker 那种 build 方式把
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3172 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.