Jenkins pipeline: checkout explicit git commit

前端 未结 3 1882
盖世英雄少女心
盖世英雄少女心 2021-02-03 23:39

I want to be able to say something like:

git branch: commitHash, credentialsId: credentialsId, url: url

The usecase: I\'m doing parallel build

3条回答
  •  闹比i
    闹比i (楼主)
    2021-02-04 00:20

    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'"
            }  
          }
        }
      }
    }
    

提交回复
热议问题