【问题标题】:Make Jenkins discover PR branch without automatically triggering build让 Jenkins 在不自动触发构建的情况下发现 PR 分支
【发布时间】:2020-03-01 20:54:08
【问题描述】:

尝试 1:使用 Python API 触发 Jenkins 构建

使用 Jenkins Python API,我能够为 PR (job.invoke()) 触发 jenkins 构建

JENKINS_URL = "<url>"
JENKINS_USERNAME = "<>"
JENKINS_PASSWORD = "<>"

class DevOpsJenkins:
    def __init__(self):
        self.jenkins_server = Jenkins(JENKINS_URL, username=JENKINS_USERNAME, password=JENKINS_PASSWORD)

    def build_job(self, name, build_no=None):
        job = self.jenkins_server[name]
        job.invoke(block=False)

if __name__ == "__main__":
    NAME_OF_JOB = "<>/"
    pipelines = ['apache-centos-gpu']
    prs = [14]
    jenkins_obj = DevOpsJenkins()
    for i in range(len(prs)):
        for j in range(len(pipelines)):
            job_name = NAME_OF_JOB+pipelines[j]+"/PR-"+str(prs[i])
            jenkins_obj.build_job(job_name)

提供,发现分支策略如下

尝试 1 的问题:不需要的自动触发

但是,这样做的问题是,它会发现 PR 分支并在每次创建新 PR 或将新提交推送到 PR 分支时自动触发构建。

尝试2:阻止分支发现停止自动触发

为了解决这个问题,我改变了发现策略以不发现任何东西

正如您在空白行为字段中看到的那样。

结果? 没有发现分支。甚至没有 PR 分支。这可以防止 PR 构建的自动触发。但这也阻止了 PR 的手动触发。基本不能再触发 PR 工作了。

如果我尝试使用上述相同的代码并稍作调整(更改作业名称/管道),我会收到此错误 jenkinsapi.custom_exceptions.UnknownJob

所以,问题是:我应该如何确保在不自动触发 PR 的情况下发现分支?

我为什么要发现分支?这样我就可以手动触发 Jenkins 构建。

我看不到任何允许为 Jenkins 构建启用/禁用自动触发的按钮。

【问题讨论】:

    标签: git jenkins github jenkins-plugins


    【解决方案1】:

    我在this 站点发现了这个问题的解决方案。

    引用:

    转到多分支管道的配置设置,然后在 “分支源”部分单击“添加属性”并选择 名为“Suppress automatic SCM triggering”的属性。

    这将阻止 Jenkins 每次触发构建 发现新的分支。

    【讨论】:

    • 添加此属性后,我是否必须手动扫描多分支管道以查找新分支还是自动扫描它们?
    • 扫描规则不变,可以设置为自动触发多分支扫描,但以后不会调用构建。
    • 不。使用自动 SCM 触发器,不需要多分支扫描。因为当用户创建一个新的 PR [因此是一个新的分支],并向它推送一个提交时,这将自动导致 Jenkins [扫描该分支 + 为该分支构建管道] 但是,通过抑制自动 SCM 触发,Jenkins 不再获取关于新分支 + 提交的 github 事件,因此它也永远不会发现该分支。
    • 对不起,我不太明白你的信息。你读过我从中获取的链接吗?我不明白为什么 github 不会收到新分支的事件。这个属性唯一要避免的是在我们有事件之后触发构建。您可以在这里查看代码:github.com/jenkinsci/branch-api-plugin/blob/master/src/main/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2020-01-09
    • 2018-09-20
    • 1970-01-01
    • 2019-07-28
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多