-
Bug
-
Resolution: Fixed
-
Minor
-
Jenkins ver. 2.73.3 running on docker (jenkins/jenkins:lts)
Git plugin 3.6.4 has a regression when working with shared libraries when a user specifies a commit which is not the last one of the branch.
Below the execution of the same pipeline with two version of the same plugin: the good one is 3.6.3 whilst the one which introduces the regression is 3.6.4.
Behaviour of 3.6.3 (good one)
Loading library xxx-jenkins-library@a39ba3363968d030eca48fc7b32e78870f580e0e > git rev-parse --is-inside-work-tree # timeout=10 Setting origin to git@github.com:user/repo.git > git config remote.origin.url git@github.com:user/repo.git # timeout=10 Fetching origin... Fetching upstream changes from origin > git --version # timeout=10 using GIT_SSH to set credentials github > git fetch --tags --progress origin +refs/heads/*:refs/remotes/origin/* > git rev-parse a39ba3363968d030eca48fc7b32e78870f580e0e^\{commit} # timeout=10 > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git@github.com:user/repo.git # timeout=10 Fetching without tags Fetching upstream changes from git@github.com:user/repo.git > git --version # timeout=10 using GIT_SSH to set credentials github > git fetch --no-tags --progress git@github.com:user/repo.git +refs/heads/*:refs/remotes/origin/* Checking out Revision a39ba3363968d030eca48fc7b32e78870f580e0e (a39ba3363968d030eca48fc7b32e78870f580e0e) > git config core.sparsecheckout # timeout=10 > git checkout -f a39ba3363968d030eca48fc7b32e78870f580e0e Commit message: "Refactor developerPipeline.groovy" > git rev-list a39ba3363968d030eca48fc7b32e78870f580e0e # timeout=10
Behaviour of 3.6.4 (bad one)
Loading library xxx-jenkins-library@a39ba3363968d030eca48fc7b32e78870f580e0e Attempting to resolve a39ba3363968d030eca48fc7b32e78870f580e0e from remote references... > git --version # timeout=10 using GIT_SSH to set credentials github > git ls-remote -h -t git@github.com:user/repo.git # timeout=10 Could not find a39ba3363968d030eca48fc7b32e78870f580e0e in remote references. Pulling heads to local for deep search... > git rev-parse --is-inside-work-tree # timeout=10 Setting origin to git@github.com:user/repo.git > git config remote.origin.url git@github.com:user/repo.git # timeout=10 Fetching origin... Fetching upstream changes from origin > git --version # timeout=10 using GIT_SSH to set credentials github > git fetch --tags --progress origin +refs/heads/*:refs/remotes/origin/* > git rev-parse a39ba3363968d030eca48fc7b32e78870f580e0e^\{commit} # timeout=10 > git branch -v --no-abbrev --contains a39ba3363968d030eca48fc7b32e78870f580e0e # timeout=10 Could not find a branch containing commit a39ba3363968d030eca48fc7b32e78870f580e0e ERROR: No version a39ba3363968d030eca48fc7b32e78870f580e0e found for library xxx-jenkins-library org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: Loading libraries failed
Here the code of the plugin up to 3.6.4: https://github.com/jenkinsci/git-plugin/commits/git-3.6.4
The culprit could be this commit: https://github.com/jenkinsci/git-plugin/commit/addcc0a57f2a205f7a79efda4ca15e7b6d937954
Steps to reproduce the issue
1) Configure the shared libraries
2) Use them with pipeline:
@Library('xxx-jenkins-library@sha1_of_commit_which_is_not_the_last_one') _
3) Execute the pipeline and you should have the above output
WORKAROUND: use git-plugin 3.6.3
- blocks
-
JENKINS-47824 git plugin 3.6.3 lost support for tagged pipeline shared libraries
- Closed
- is blocked by
-
JENKINS-48385 Migrate from SCMHead to concrete subclass
- Open
- is related to
-
JENKINS-51134 GitSCMTelescope should support DiscoverOtherRefsTrait
- Open
- links to