| checkout scm doesn't take revision that started the pipeline instead takes last (fresh) commit from branch Related to doc: https://jenkins.io/doc/book/pipeline/jenkinsfile/
| The checkout step will checkout code from source control; scm is a special variable which instructs the checkout step to clone the specific revision which triggered this Pipeline run. |
To reproduce:
- Merge to branch (abc)
- start pipeline
- pipeline waits for continue (input message)
- push new change to branch (xyz)
- resume pipeline
Expect:
Observe:
Workaround for as - use explicit checkout git commit variable GIT_COMMIT we defined at the beginning of Pipeline: def scmVars = checkout scm env.GIT_COMMIT = scmVars.GIT_COMMIT And we see that checkout show different results:
checkout scm: [$class: 'GitSCM', branches: [[name: "${GIT_COMMIT}"]]]
sh 'cat new_files'
// abc
checkout scm
sh 'cat new_files'
// xyz
It's a bug or feature? according to the doc - bug... (git plugin?) Can be related with JENKINS-59071 or JENKINS-43761 |