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

2023-03-29 09:07:17 +08:00
 laters
1912 次点击
所在节点    DevOps
11 条回复
laters
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
2023-03-29 10:08:49 +08:00
Pipeline ?
laters
2023-03-29 10:15:52 +08:00
@securityCoding Pipeline 中如何能区分对应的构建步骤,有类似的 demo 吗 ? 谢谢
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
2023-03-29 10:38:20 +08:00
差不多这样吧,用 when 控制
laters
2023-03-29 10:42:56 +08:00
@tlxxzj 感谢,我大概明白这个意思了,除了 pipeline 还有别的方式可以实现这种吗? 关于这部分你那边有没有相关的文档可以学习下
tlxxzj
2023-03-29 10:59:25 +08:00
@laters
你可以在 job 里执行 python,ruby...脚本,然后在脚本里控制流程吧
https://www.jenkins.io/doc/book/pipeline/syntax/
w292614191
2023-03-29 11:24:53 +08:00
@securityCoding #2 应该是这个
vishun
2023-03-29 15:13:56 +08:00
最好是月度官方 pipeline 文档。也可以参考下[windows 下 jenkins 通过 pipeline 来部署和回滚 maven 、npm 、小程序项目]( https://www.cnblogs.com/vishun/p/16422561.html),里面有参数化构建的相关示例。
securityCoding
2023-03-29 18:54:54 +08:00
@laters stage 可以加判断语句,你瞅瞅官方文档
defunct9
2023-03-29 19:03:31 +08:00
千万别用这种 groovy 得玩意,只能再 jenkins 上玩。换到 circle ci 、gitlab 、cloudbuild 完全不适用,还是用 Docker 那种 build 方式把

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/928036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX