I want to be able to say something like:
git branch: commitHash, credentialsId: credentialsId, url: url
The usecase: I\'m doing parallel build
To checkout a specific hash from your repository, in Jenkins pipeline, you can do something like this:
pipeline {
agent none
options {
timeout(time: 1, unit: 'HOURS')
}
environment {
// Jenkins credentials for git auth
SOURCECODE_JENKINS_CREDENTIAL_ID = 'sourcecode-credential'
// URL of the repo
SOURCE_CODE_URL = 'https://sourcecode.com/repo.git'
// branch
RELEASE_BRANCH = 'dev'
// hash
GIT_HASH = 'your_hash'
}
stages {
stage('Git') {
agent any
steps {
sleep(5)
// Clean dir
deleteDir()
// Checkout branch
git branch: "$RELEASE_BRANCH", credentialsId: "$SOURCECODE_JENKINS_CREDENTIAL_ID" , url: "$SOURCE_CODE_URL"
// Checkout hash
withCredentials([usernamePassword(credentialsId: "$SOURCECODE_JENKINS_CREDENTIAL_ID", usernameVariable: 'GIT_USER', passwordVariable: 'GIT_PASS')]) {
sh "git checkout '$GIT_HASH'"
}
}
}
}
}