Геррит-триггер для Дженкинса не смог найти никакого пересмотра для сборки

У меня проблемы с использованием Jenkins + Gerrit.

Вот что я получил до сих пор:

  • Конфигурация Gerrit Trigger в Jenkins выглядит нормально: когда я нажимаю новый набор изменений, запускается сборка Jenkins.

  • Я использовал это: Дженкинс: настройки для проблем с Gerrit Trigger также иметь возможность запускать его "вручную".

  • Что касается моей конфигурации, у меня есть что-то вроде этого: qaru.site/info/551384/.... Спецификатор Branch - $GERRIT_BRANCH, а Ref Spec - $GERRIT_REFSPEC

  • Gerrit и Git работают штрафы самостоятельно. Доступ тоже кажется ОК.

Вот моя проблема. При построении (запускается gerrit или вручную) выход журнала:

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url ssh://[email protected]:29418/testproject # timeout=10
Fetching upstream changes from ssh://[email protected]:29418/testproject
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git -c core.askpass=true fetch --tags --progress ssh://[email protected]:29418/testproject refs/heads/master
 > git rev-parse origin/$GERRIT_BRANCH^{commit} # timeout=10
 > git rev-parse $GERRIT_BRANCH^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Finished: FAILURE

Я застрял в этом сообщении, пытался с пустым репо, непустыми, а также с или без изменений в "обзоре"

Ответ 1

У меня была эта проблема, и я думаю, что я ее исправил, я обвиняю интерфейс Jenkins для скрытия некоторых важных элементов конфигурации;)

Вот вывод моей сборки Jenkins до исправления:

Triggered by Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (amd64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer amd64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 amd64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons +refs/heads/*:refs/remotes/origin/*
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

Решение

Вам нужно будет открыть конфигурацию сборки и перейти к разделу "Управление исходным кодом", как показано ниже:

Git config с кнопкой

Теперь вы заметите, что есть кнопка "Дополнительно", щелкните ее, чтобы открыть дополнительные поля, как показано ниже:

Git config с полем refspec

Теперь вы можете ввести свой refspec здесь: $GERRIT_REFSPEC

Теперь либо перезапустите неудачную сборку, либо оставите отзывы и отправьте новую, и она должна работать.

Вот результат работы Jenkins теперь, когда у нас есть соответствующий refspec:

Retriggered by user kerrien for Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (amd64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer amd64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 amd64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons refs/changes/56/15056/2
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
Checking out Revision 74e4ff18f54bd6e046f7af016614193f566adfe4 (dev)
 > /usr/bin/git config core.sparsecheckout # timeout=10
 > /usr/bin/git checkout -f 74e4ff18f54bd6e046f7af016614193f566adfe4
 > /usr/bin/git rev-parse FETCH_HEAD^{commit} # timeout=10
 > /usr/bin/git rev-list 2649d51369413cef4dfb7ec50939945005514cfa # timeout=10
Cleaning workspace
 > /usr/bin/git rev-parse --verify HEAD # timeout=10
Resetting working tree
 > /usr/bin/git reset --hard # timeout=10
 > /usr/bin/git clean -fdx # timeout=10
Triggering datamining.nip-commons.gerrit » default
datamining.nip-commons.gerrit » default completed with result SUCCESS
Started calculate disk usage of build
Finished Calculation of disk usage of build in  2 second
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: SUCCESS

Ответ 2

  • Оставьте поле "Филиалы для построения > Спецификатор ветки"
  • Нажмите кнопку "Дополнительно" и установите пользовательский refspec: + ссылки/главы/функция/моя-функция: ссылки/пультов ДУ/происхождение/функция/мой-функция С этими настройками плагин будет правильно выполнять выборку, а затем проверять только ветку "feature/my-feature".

Ответ 3

Замените $GERRIT_BRANCH на $GERRIT_REFSPEC

Ответ 4

Вы можете попытаться настроить такую ​​функцию

  • Refspec= refs/changes/: refs/changes/
  • Филиалы для построения= $GERRIT_REFSPEC

Следуйте полной конфигурации

Если вы нажмете "Build Now", Jenkins не сможет получить источники, так как в этом случае не существует $GERRIT_REFSPEC.

Ответ 5

После долгих битв и слежения за журналом, наконец, я получил решение.

Это просто ошибка конфигурации, которую мы все сделали. После проверки флажок Этот проект параметрируется Ниже необходимо выполнить конфигурацию

введите описание изображения здесь

Здесь я назвал имя параметра branchgit Теперь в разделе "Управление исходными кодами" нам нужно сосредоточиться на Филиалах для построения, значение которого должно быть только "$ branchgit", как показано ниже. введите описание изображения здесь