Я пытаюсь создать два задания Jenkins, которые используют GitHub Pull Request Builder для того, чтобы для запуска нескольких проверок состояния, но у меня возникли проблемы с получением проверки статуса из моей последующей работы, чтобы она появилась в моем проекте GitHub.
Здесь обобщенный поток CI, который я хотел бы настроить:
- В моем репозитории git открывается запрос на перенос, который запускает задание Upstream для запуска в Jenkins
- Upstream сообщает о своем статусе на основе сборки и, если
SUCCESS
, следует вызывать Downstream задание после сборки - Downstream запускает и сообщает свою собственную проверку статуса
Шаг 3 - это то, где у меня возникают проблемы. Вниз работает правильно, но он не публикует статус. Статус даже не доступен в разделе Филиалы моих настроек проекта GitHub. Я не уверен, как GHPRB выполняет первоначальное создание проверки состояния, но есть ссылки на контекстный обмен сообщениями на выходе консоли:
14:58:23 Started by upstream project "upstream" build number 209
14:58:23 originally caused by:
14:58:23 GitHub pull request #114 of commit f1ff2819a5308f7819275e732cf44a2cc2ec31dc, no merge conflicts.
14:58:23 [EnvInject] - Loading node environment variables.
14:58:23 Building on master in workspace /store/jenkins/jobs/downstream/workspace
14:58:23 > git rev-parse --is-inside-work-tree # timeout=10
14:58:23 Fetching changes from the remote Git repository
14:58:23 > git config remote.origin.url <removed for privacy> # timeout=10
14:58:23 Fetching upstream changes from <removed for privacy>
14:58:23 > git --version # timeout=10
14:58:23 > git -c core.askpass=true fetch --tags --progress <removed for privacy> +refs/pull/*:refs/remotes/origin/pr/*
14:58:24 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
14:58:24 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
14:58:24 Checking out Revision eac390c51a1b8b591bfe879421bd5fad0421a1ec (refs/remotes/origin/master)
14:58:24 > git config core.sparsecheckout # timeout=10
14:58:24 > git checkout -f eac390c51a1b8b591bfe879421bd5fad0421a1ec
14:58:24 First time build. Skipping changelog.
14:58:24 [build] $ /store/jenkins/tools/hudson.tasks.Ant_AntInstallation/ant_1.8.2/bin/ant -DghprbStatusUrl= "-DghprbSUCCESSMessage=Packaging organization successfully cleaned" -DghprbStartedStatus=Undeploying -DghprbAddTestResults=false "-DghprbCommitStatusContext=Cleaning Packaging" "-DghprbERRORMessage=An error occurred during undeployment" -DghprbUpstreamStatus=true "-DghprbTriggeredStatus=Preparing destructive changes" "-DghprbFAILUREMessage=Packaging organization failed to clean properly" -DghprbShowMatrixStatus=false
Вот соответствующие разделы конфигурации для обоих заданий Jenkins:
Upstream Job
Управление исходным кодом: Git
- Имя:
origin
- Refspec:
+refs/pull/*:refs/remotes/origin/pr/*
- Спецификатор отрасли:
${sha1}
Сборка триггеров
- GitHub Pull Request Builder
- Используйте github hooks для запуска сборки
✔︎
- Отобразить ошибки сборки в строках ниже по потоку?
✔︎
- Настройка триггера заполняется настраиваемыми контекстными сообщениями
- Используйте github hooks для запуска сборки
Действия после сборки
- Постройте другие проекты:
Downstream
Работа в нисходящем направлении
Управление исходным кодом: Git
- Имя:
origin
- Refspec:
+refs/pull/*:refs/remotes/origin/pr/*
- Спецификатор отрасли:
*/master
Сборка триггеров
- GitHub Pull Request Builder
- Настройка триггера заполняется настраиваемыми контекстными сообщениями
Среда сборки
- Установить статус фиксации GitHub с настраиваемым контекстом и сообщением (необходимо настроить работу по восходящему потоку с помощью триггера GHPRB)
✔︎
- Поля пользовательских контекстных сообщений отражают те, которые перечислены в разделе Настройка триггеров (я сомневаюсь, что оба они необходимы, но, похоже, не работают в настоящее время)
Что мне не хватает? Следует отметить, что у меня нет плагина DSL Jobs, поэтому я не могу использовать расширение, предоставляемое GHPRB.