让Jenkins在不自动触发构建的情况下发现PR分支

问题描述 投票:3回答:1

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

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

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)

提供,发现分支策略如下discover_branch

尝试1的问题:不希望的自动触发

但是,与此相关的问题是,每次创建新的PR或将新的提交推送到PR分支时,它都会发现PR分支并自动触发基于它们的构建。

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

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

您可以在空白行为字段中看到。

结果?没有发现分支。甚至没有公关部门。这样可以防止PR构建的自动触发。但这也可以防止PR的手动触发。基本上,PR作业无法再触发。

如果我尝试以上相同的代码,但做了一些小的调整(更改工作名称/管道),则会出现此错误jenkinsapi.custom_exceptions.UnknownJob

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

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

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

git jenkins github jenkins-plugins
1个回答
0
投票

我在this网站中找到了解决此问题的方法。

© www.soinside.com 2019 - 2024. All rights reserved.