Jenkins Git插件在构建工作之前没有提取最新的更改

pol*_*ice 26 git plugins pull jenkins

我正在与Jenkins CI合作,我正在尝试正确配置我的作业以使用git.

我为我的一个工作安装并配置了git插件.当我构建作业时,我希望它为我指定的分支提取最新的更改,然后继续构建过程的其余部分(例如,单元测试等).

当我看到控制台输出时,我明白了

> git fetch --tags --progress ssh://gerrit@git-dev/Util +refs/heads/*:refs/remotes/origin/*
 > git rev-parse origin/some_branch^{commit}
Checking out Revision <latest_SHA1> (origin/some_branch)
 > git config core.sparsecheckout
 > git checkout -f <latest_SHA1>
 > git rev-list <latest_SHA1>
Run Code Online (Sandbox Code Playgroud)

我看到插件获取并检出了正确的提交哈希值,但是当测试运行时,似乎repo根本没有更新.如果我进入Jenkins的存储库,我会看到最新的更改从未被删除过.

它不应该在尝试构建之前拉动吗?

我在我的Jenkins机器上安装了git 1.8.5,这是推荐的版本. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

在检查了其他类似的声音问题后,他们的答案对我的问题没有帮助.

Abh*_*eet 33

将我与工作空间未被清理,使用的场景联系起来:

  • 对我来说,这位于“构建触发器”&gt;“管道”&gt;“其他行为”中 (3认同)

小智 7

我相信Jenkins会将更改添加到自己的tmp目录中.因此,尽管Jenkins在其自己的沙箱中正确构建了新代码,但您的存储库目录仍未更新.

我的解决方案是在我的构建过程中添加一个"git pull"步骤,如下所示:

当新的提交传递给我的GitHub仓库时:
1.构建我的项目

如果成功,请执行以下构建后步骤:
1.执行Shell:

cd /your/repo/directory/
git pull
Run Code Online (Sandbox Code Playgroud)

你可以明显地修改"git pull"命令来做你需要做的事情,如果'拉'不适合你.


Kri*_*pta 6

对于使用 Jenkins 管道和 git 插件的人,请使用Wipe Out repository & force clone下面Additional BehavioursSCM部分。

在此输入图像描述