
Проверяем задано ли значение переменной "GIT_COMMIT_ID", если да, то делаем checkout по хешу коммита, если нет, то делаем checkout по имени ветки. Переменная "GIT_BRANCH_NAME" берется из Active Choice параметра.
Jenkinsfile:
pipeline {
agent any
parameters {
string(defaultValue: '', description: 'If you need to build a specific commit, enter it in this field.', name: 'GIT_COMMIT_ID')
}
stages {
stage('Checkout') {
steps {
script {
if ( env.GIT_COMMIT_ID.isEmpty() ) {
sh "echo Checkout branch: $GIT_BRANCH_NAME"
checkout([
$class: "GitSCM",
branches: [[name: "${GIT_BRANCH_NAME}"]],
userRemoteConfigs: [[url: "${GIT_URI}"]]
])
}
else {
sh "echo Checkout commit: $GIT_COMMIT_ID"
checkout([
$class: "GitSCM",
branches: [[name: "${GIT_COMMIT_ID}"]],
userRemoteConfigs: [[url: "${GIT_URI}"]]
])
}
}
}
}
}
}