Попытка 1: запустить сборку Jenkins с использованием Python API
Используя API Jenkins Python, я могу запустить сборку jenkins для PR (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)
При условии, стратегия открытия ветки следующая:
Проблема с попыткой 1: нежелательные автоматы c триггер
Однако проблема в этом заключается в том, что он обнаруживает ветви PR и автоматически запускает их построение каждый раз, когда создается новый PR или когда новая ветка помещается в ветку PR.
Попытка 2: Запретить обнаружение ветвлений, чтобы остановить автоматические c триггеры
Чтобы решить эту проблему, я изменил стратегию обнаружения, чтобы ничего не обнаруживать
Как вы можете видеть в пустом поле поведения.
Результат? Ветвь не обнаружена. Даже не пиар ветка. Это предотвращает запуск automati c PR-сборок. Но это также предотвращает ручной запуск PR. По сути, PR-задание больше не может быть запущено.
Если я попробую тот же код, приведенный выше, с небольшими изменениями (изменения имени задания / конвейера), я получу эту ошибку jenkinsapi.custom_exceptions.UnknownJob
Итак, вопрос: как мне обеспечить обнаружение веток без автоматического запуска PR?
Почему я хочу обнаруживать ветки? Так что я могу вручную запускать сборки Jenkins.
Я не вижу ни одной кнопки, позволяющей включить / отключить автоматический запуск c для сборок Jenkins.