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.
Как я мог передать refspec команде тогда?
1 ответ
Плагин Git поддерживает указание вашего собственного refspec в течение многих лет. Правильный синтаксис конвейера можно найти с помощью генератора фрагментов в разделе "Оформление заказа": "Общие SCM"> "Git"> "Хранилища"> "Дополнительно"> "Refspec". Это даст вам checkout
Синтаксис вам нужен.
git
Сам шаг в настоящее время не поддерживает пользовательские refspecs, и ошибка, на которую вы ссылаетесь, относится к GitSCMSource
который, как указано в описании, используется для многоотраслевых трубопроводов.
Если вы используете многоотраслевой конвейер, новую опцию refspec, о которой вы говорите, можно найти в разделе "Исходники филиала> Git> Advanced> RefSpecs".