Проверяем задано ли значение переменной "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}"]] ]) } } } } } }