Можно ли использовать параметры, чтобы разрешить пользователям передавать git sha в конвейер с несколькими ветвями, по умолчанию - на голову ветки? Также мне понадобится эта функция только для основной ветки.
Я использую ...
Файл Jenkins в коде
Декларативный конвейер Jenkins
Да, это возможно, но я думаю, вам придется использовать скриптовые конвейеры вместо декларативных.
Если текущая ветвь является главной, вы настраиваете параметр для этой сборки (поскольку это не очень интуитивно понятно, я написал статья в блоге некоторое время назад). params.INPUT_REVISION
, например, затем сохранит данную ревизию, и вы можете установить по умолчанию HEAD
или вернуться к нему, если параметр еще не указан (например, для первого запуска).
Вы предоставляете эту ревизию шагу checkout(scm)
в качестве параметра, чтобы он не проверял текущую главную ветвь, а указанную ревизию.
Я смог сделать это с помощью декларативных конвейеров со следующими ...
pipeline {
options {
skipDefaultCheckout()
}
...
steps {
script {
if (GIT_REVISION=='HEAD') {
checkout scm
} else {
checkout([$class: 'GitSCM',
branches: [[name: "${params.GIT_REVISION}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'XXXXXXX', url: '[email protected]:xxxxx/xxxxx.git']]
])
}
...
}
}
}
Я видел, где можно пропустить проверку по умолчанию с декларативными ветвями, но еще не пробовал.