在Jenkins上获取git存储库时出错(不是每次)
我有Jenkins的工作来运行单元测试。每隔10分钟,它会检查git存储库中是否有任何新的更改。如果发现一些变化,它将运行测试 此错误每2-3次生成发生一次。其他版本也可以 出现错误的日志:在Jenkins上获取git存储库时出错(不是每次),git,Git,我有Jenkins的工作来运行单元测试。每隔10分钟,它会检查git存储库中是否有任何新的更改。如果发现一些变化,它将运行测试 此错误每2-3次生成发生一次。其他版本也可以 出现错误的日志: > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url gitlab@gitlab:gr
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url gitlab@gitlab:group/project.git # timeout=10
Pruning obsolete local branches
Fetching upstream changes from gitlab@gitlab:group/project.git
> git --version # timeout=10
> git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from gitlab@gitlab:group/project.git
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:797)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1051)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1082)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1269)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune" returned status code 1:
stdout:
stderr: remote: Counting objects: 14, done.
remote: Compressing objects: 7% (1/14)
remote: Compressing objects: 14% (2/14)
remote: Compressing objects: 21% (3/14)
remote: Compressing objects: 28% (4/14)
remote: Compressing objects: 35% (5/14)
remote: Compressing objects: 42% (6/14)
remote: Compressing objects: 50% (7/14)
remote: Compressing objects: 57% (8/14)
remote: Compressing objects: 64% (9/14)
remote: Compressing objects: 71% (10/14)
remote: Compressing objects: 78% (11/14)
remote: Compressing objects: 85% (12/14)
remote: Compressing objects: 92% (13/14)
remote: Compressing objects: 100% (14/14)
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 11), reused 0 (delta 0)
From gitlab:group/project
+ 9d4232f...2eb8fcb HEAD -> origin/HEAD (forced update)
error: Ref refs/remotes/origin/develop is at 2eb8fcb4a998bab10ee5851a56b61b5fc3b7bec5 but expected 9d4232f08532456b4c69a0307cdc96bd267f12b2
! 9d4232f..bcdc945 develop -> origin/develop (unable to update local ref)
eb750cb..b4d4ce2 master -> origin/master
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1752)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1495)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:64)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:315)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:795)
... 11 more
ERROR: null
以下是未出现该错误的生成日志:
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url gitlab@gitlab:group/project.git # timeout=10
Pruning obsolete local branches
Fetching upstream changes from gitlab@gitlab:group/project.git
> git --version # timeout=10
> git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
> git rev-parse origin/develop^{commit} # timeout=10
Checking out Revision 2eb8fcb4a998bab10ee5851a56b61b5fc3b7bec5 (origin/develop)
> git config core.sparsecheckout # timeout=10
> git checkout -f 2eb8fcb4a998bab10ee5851a56b61b5fc3b7bec5
> git rev-list 9d4232f08532456b4c69a0307cdc96bd267f12b2 # timeout=10
Set build name.
New build name is '#16007-origin/develop-2eb8fcb'
[workspace] $ /bin/sh -xe /tmp/hudson5005409752690042196.sh
+ echo ''
+ echo ''
+ /usr/local/bin/prove -j 3 --lib --timer --nocount --formatter=TAP::Formatter::JUnit /var/lib/jenkins/jobs/project/workspace/t
Build step 'Execute shell' marked build as failure
Set build name.
New build name is '#16007-origin/develop-2eb8fcb'
Variable with name 'BUILD_DISPLAY_NAME' already exists, current value: '#16007-origin/develop-2eb8fcb', new value: '#16007-origin/develop-2eb8fcb'
我不明白为什么会发生这种错误。我想消除它。现在jenkins作业向我显示了假错误(不是测试状态的结果)
编辑。
我注意到,当我自己在工作区目录中执行最后一个git fetch命令时,它会依次返回两个不同的结果(我不确定是否与上述错误有关):
您的Jenkins构建命令是什么???它是一个shell命令:
/usr/local/bin/prove-j3--lib--timer--nocount--formatter=TAP::formatter::JUnit$WORKSPACE/t>$WORKSPACE/build/testreports/Jenkins-${JOB_NAME}-JUnit.xml
,但我认为错误在构建阶段之前,而是在scm操作期间。这与中描述的问题相同(未解决)。我删除了整个工作区并再次克隆了git项目。所以现在新的构建是可以的。但这是一个很好的解决办法。
bash-4.1$ git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
From gitlab:group/project
+ c3a0c12...2eb8fcb HEAD -> origin/HEAD (forced update)
bash-4.1$ git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
From gitlab:group/project
2eb8fcb..c3a0c12 develop -> origin/develop
bash-4.1$ git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
From gitlab:group/project
+ c3a0c12...2eb8fcb HEAD -> origin/HEAD (forced update)
bash-4.1$ git fetch --tags --progress gitlab@gitlab:group/project.git +refs/heads/*:refs/remotes/origin/* --prune
From gitlab:group/project
2eb8fcb..c3a0c12 develop -> origin/develop