2

我正在将 bitbucket 分支源插件与 bitbucket 团队项目一起使用,该项目索引整个 bitbucket 存储库。尽管我的 jenkinsfile 只输入了一次 checkout scm,但 jenkins 会在 jenkinsfile 甚至启动之前结帐,如何禁用它?

我需要使用通过“buildWithParameters”远程触发的参数化管道,并将一个提交哈希传递给管道。但问题是 bitbucket 插件在 jenkinsfile 之前启动自己的结帐,该文件欢迎超过 20-30 次提交到构建,这使得第二个参数化结帐无用。

当这种双重结帐发生时,也很奇怪的是,第二个参数化结帐通常以日志条目结束:

 > git rev-parse 19835cab351224455778899sdggscvhjkkknb42a3addfb^{commit} # timeout=10

而实际上应该这样做:

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository

仅此而已,只是日志中的那一行,没有执行任何操作。如何避免第一次结账?

4

2 回答 2

1

我是 Jenkins Pipelines 的新手,但我的理解是 Jenkins 需要首先获取您的 github/bitbucket 代码才能读取 jenkinsfile,然后在读取 Jenkinsfile 后,它将执行文件中的特定 scm 步骤。

Jenkins backlog中存在一个问题,即尝试在不进行结帐的情况下读取 Jenkinsfile。

于 2017-04-11T17:47:31.213 回答
1

您可能指的是“声明式:Checkout SCM”“阶段”。如果是这样,请跳过DefaultCheckout,如下所示:

pipeline {
  agent { label 'docker && git && rbenv' }
  options {
    skipDefaultCheckout true
  }
  ...
于 2017-04-12T03:32:49.343 回答