Jenkin Pipeline - Git Plugin 3.1.0 - rawRefSpecs не работает

Я использую Jenkins с плагином конвейера и плагином Git версии 3.1.0. Согласно этому билету: https://issues.jenkins-ci.org/browse/JENKINS-40908, эта функция является частью версии 3.1.0.

Тем не менее мне не удается установить переменную rawRefSpecs.

Вот моя конфигурация трубы:

git url: 'ssh://foo/bar.git',
    rawRefSpecs: '+refs/changes/*:refs/changes/*',
    branch: 'bar',
    ...

и вот вывод, когда я запускаю план:

 > /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://foo/bar.git # timeout=10
Fetching upstream changes from ssh://foo/bar.git
 > /usr/bin/git --version # timeout=10
using GIT_SSH to set credentials 
 > /usr/bin/git fetch --tags --progress ssh://foo/bar.git +refs/heads/*:refs/remotes/origin/*
 > /usr/bin/git rev-parse refs/remotes/origin/bar^{commit} # timeout=10
 > /usr/bin/git rev-parse refs/remotes/origin/origin/bar^{commit} # timeout=10
 > /usr/bin/git rev-parse origin/bar^{commit} # timeout=10

Мы видим, что fetch сохраняет значения параметров по умолчанию для refspecs.

Похоже, что GitStep заставляет отраслевую спецификацию быть "*/"+branch и игнорировать любой другой параметр, кроме branch, credentialsId и url.

https://github.com/jenkinsci/git-plugin/blob/f6ace83fe36740a1ab35612d3b4c5b400647f6ea/src/main/java/jenkins/plugins/git/GitStep.java

Как я мог передать refspec команде тогда?

1 ответ

Плагин Git поддерживает указание вашего собственного refspec в течение многих лет. Правильный синтаксис конвейера можно найти с помощью генератора фрагментов в разделе "Оформление заказа": "Общие SCM"> "Git"> "Хранилища"> "Дополнительно"> "Refspec". Это даст вам checkout Синтаксис вам нужен.

git Сам шаг в настоящее время не поддерживает пользовательские refspecs, и ошибка, на которую вы ссылаетесь, относится к GitSCMSource который, как указано в описании, используется для многоотраслевых трубопроводов.

Если вы используете многоотраслевой конвейер, новую опцию refspec, о которой вы говорите, можно найти в разделе "Исходники филиала> Git> Advanced> RefSpecs".

Другие вопросы по тегам