2017-04-11 46 views
2

我使用bitbucket分支源插件与bitbucket团队项目索引整个bitbucket回购。尽管我的jenkinsfile已经结帐scm只输入一次,jenkins会在jenkinsfile甚至启动前结账,如何禁用它?为什么bitbucket分支项目会结账两次?

我需要使用通过“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 

并且那一切,只是在日志中的一行,没有任何执行。如何避免第一次结帐?

回答

1

我是新来的詹金斯管道,但我的理解是詹金斯需要获取您的github/bitbucket代码第一次只是阅读jenkinsfile和读取Jenkinsfile后,它将执行您的文件中特定的scm步骤。

an issue in Jenkins backlog试图读取Jenkinsfile没有结帐。

+0

不幸的是经过测试似乎是这样的。你能指出问题编号吗? – koller23

+0

我认为这是[这一个](https://issues.jenkins-ci.org/browse/JENKINS-33273) –

1

您可能指的是“声明:Checkout SCM”“阶段”。如果是这样,skipDefaultCheckout,像这样:

pipeline { 
    agent { label 'docker && git && rbenv' } 
    options { 
    skipDefaultCheckout true 
    } 
    ... 
+0

这很有趣,虽然它只是删除了自动添加结账阶段(作为一个可视化),如果没有在jenkins文件中。真正的结账仍然不幸正在进行。 – koller23

+0

这也适用于Multibranch管道项目。这样的项目被检出两次:一次读取Jenkinsfile,然后一次执行管道脚本。 – Robotron