gpt4 book ai didi

jenkins - 仅在 Jenkinsfile 中的多个轮询 SCM 之一上触发

转载 作者:行者123 更新时间:2023-12-02 04:31:36 25 4
gpt4 key购买 nike

我的 Jenkinsfile 有两个 SCM checkout ,primarysecondary。我只想在 primary 中提交时触发构建。我已经以明显的方式设置了 poll 参数,但它似乎并没有被接受;当对任一存储库进行提交时,构建将被触发。

node {
stage("checkout") {
checkout scm: [$class: "MercurialSCM", source: "/var/jenkins_home/hg/primary", subdir: "hg/primary", clean: true], poll: true
checkout scm: [$class: "MercurialSCM", source: "/var/jenkins_home/hg/secondary", subdir: "hg/secondary", clean: true], poll: false
}
stage("do something") {
echo 'Hello World'
sh 'sleep 30s'
echo 'Done'
}
}

最佳答案

我无法弄清楚如何仅在 Jenkinsfile 中执行此操作。为了自己解决这个问题,我最终创建了一个单独的 Jenkins 作业(Free Style 项目,而不是管道),该作业在 primary 存储库上设置为 Poll SCM。这项工作除了在 Post-build Actions 中什么都不做,它会触发我实际的 Jenkins Pipeline 工作,它会像您展示的那样加载 Jenkinsfile。触发器传递一个 Predefined parameter 设置为轮询器找到的更改 ID。在我的例子中,它是 Git,所以我设置了 change=${GIT_COMMIT}

在我的管道作业中,我创建了一个名为 change 的字符串参数。

在我的 Jenkinsfile 中,我在 checkout 行中使用了 env.change 来 checkout 特定的提交。

关于jenkins - 仅在 Jenkinsfile 中的多个轮询 SCM 之一上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com