-
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