Jenkins Git引用旧提交

时间:2018-08-05 16:25:23

标签: git jenkins jenkins-plugins jenkins-pipeline

我正在为角度6应用程序创建Jenkins CI流。 我创建了一个多配置项目。并在配置中选择以下值:

源代码管理:
  Git:Repo_URL
  要建立的分支:* / master
  资源库浏览器:自动

构建触发器:
  Gerrit事件:已选中

Gerrit触发器:
  选择服务器:gerrit。*。com
  触发:创建补丁集
              添加的命令包含Reg Exp:[Rr] [Ee] [Vv] [Ee] [Rr] [Ii] [Ff] [Yy]

动态触发器配置:
   Gerrit项目:
     类型:Plair模式:projName
   分行:
     类型:Plair模式:大师

构建环境:
  提供Node和npm bin /文件夹到PATH:NodeJS路径
  npmrc文件:系统默认值

内部版本:
 命令:
    回声$ PATH
    节点--version
    npm --version
    npm install -g @ angular / cli
    ng build

当我提交代码或进行重新验证时,将触发构建,但是它将获取先前的提交,而不是最新的提交(触发构建)。

下面是构建日志:

10:55:56 Cloning the remote Git repository      
10:55:56 Cloning repository ssh://rmp-bot@***       
10:55:56  > git init /var/lib/jenkins/workspace/application_name/Patchset-Sonar-CI-master # timeout=10          
10:55:56 Fetching upstream changes from ssh://rmp-bot@***             
10:55:56  > git --version # timeout=10        
10:55:56 using GIT_SSH to set credentials Gerrit ssh user              
10:55:56  > git fetch --tags --progress ssh://rmp-bot@***   +refs/heads/*:refs/remotes/origin/*                           
10:55:57  > git config remote.origin.url ssh://rmp-bot@*** # timeout=10
10:55:57  > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10            
10:55:57  > git config remote.origin.url ssh://rmp-bot@*** # timeout=10           
10:55:57 Fetching upstream changes from ssh://rmp-bot@***        
10:55:57 using GIT_SSH to set credentials Gerrit ssh user               
10:55:57  > git fetch --tags --progress ssh://rmp-bot@***  +refs/heads/*:refs/remotes/origin/*                   
10:55:57  > git rev-parse refs/remotes/origin/master^{commit} # timeout=10          
10:55:57  > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10                
10:55:57 Checking out Revision fc96e9e083c368ff963114914fede303d885ae6a (refs/remotes/origin/master)           
10:55:57  > git config core.sparsecheckout # timeout=10                 
10:55:57  > git checkout -f fc96e9e083c368ff963114914fede303d885ae6a 

具有其他项目类型的设置适用于其他Applications Jenkins设置。请让我知道以上配置出了什么问题。

我还尝试添加Refspec:refs / changes / :refs / changes / &Name:Origin in SCM-> Git-> Repositores。但是仍然面临着同样的问题。

3 个答案:

答案 0 :(得分:0)

通过为Refspec提供适当的值来解决该问题:SCM-> Git->存储库中的refs / changes / :refs / changes /

答案 1 :(得分:0)

要解决此问题,请在要构建的分支上添加前缀“ origin”。 像这样:

.cantact_info{
  display: flex;
}

答案 2 :(得分:0)

这基本上是由工作空间中的某些缓存引起的。

有一些解决方案。

  1. 在git checkout阶段之前删除/清理工作区。 Jenkins Delete workspace before build starts中的作业配置中有一个选项。此选项在自由式作业的“构建环境”下。
  2. 就像mkebri在他们的答案中提到的那样。在分支名称中添加origin/前缀。这告诉git使用remote分支。
  3. 在作业的Git部分的其他行为选项中,您可以添加“清除存储库并强制克隆”,这与选项一类似。
  4. 有可用的插件也可以为您做这些事情