【发布时间】: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