Необходимо передать git sha для проверки в многоотраслевой конвейер Jenkins.
Можно ли использовать параметры, позволяющие пользователям передавать git sha в конвейер с несколькими филиалами, в то время как по умолчанию используется глава филиала? Также мне нужно было бы только эту функцию для основной ветки.
Я использую...
Дженкинсфайл в коде
Дженкинс Декларативный трубопровод
2 ответа
Да, это возможно, но я думаю, что вы должны использовать скриптовые конвейеры вместо декларативных.
Если текущая ветвь является главной, вы настраиваете параметр для этой сборки (так как это не очень интуитивно понятно, я написал статью в блоге некоторое время назад).
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: 'git@github.com:xxxxx/xxxxx.git']]
])
}
...
}
}
}