将Jenkins作业设置为不克隆SCM中的仓库


17

我已经使用Bitbucket插件将Jenkins与Bitbucket集成在一起。根据插件的Wiki,如果在作业的SCM中设置了存储库,则将触发给定的作业。如您所知,如果在Jenkins作业中设置了SCM,则会在预构建阶段将其克隆。

到目前为止,一切都很好。但是,我要设置的作业的主要目的与存储库的内容无关;相反,我只希望作业处理Bitbucket发送的有效负载。可以说,克隆存储库在存储方面并不是什么大问题,尽管您确实不需要它。我不这么认为,增加不必要的步骤,浪费时间和资源不是一个好习惯。

因此,问题是:有人知道如何在Jenkins作业中设置SCM,但阻止它克隆存储库吗?


2
听起来您正在尝试将Jenkins用作微服务,这超出了Jenkins的范围:)。如果可以,请回发,因为它很有趣。
特拉维斯·汤普森

我没有将Jenkins用作微服务。为什么这么说 实际上,所有这些都是变通方法:我使用的是许多存储库通用的管道作业。Jenkinsfile在另一个存储库中。因此,我无法直接使用Bitbucket插件触发管道,因为它只是不会触发它,所以我决定为每个回购创建一个“代理作业”,并将信息作为下游作业发送到管道。在这种“代理作业”中,我不需要克隆存储库,但它必须位于SCM中。
埃克托巴尔韦德帕雷哈

很难理解,您写的是关于不可能完成的事情而不是实际想要实现的事情,也许您可​​以添加更多关于实际想要实现的内容以及代理工作如何适应其中的详细信息?
Michael Le BarbierGrünewald17年

我猜你在说我上面的评论。这只是第一个评论的答案。请参考主要问题,没有其他要补充的内容。我希望您实现的目标非常明确:“防止Jenkins在构建过程中克隆存储库”。
埃克托巴尔韦德帕雷哈

1
@HéctorValverdePareja当然可以,但是您的措辞似乎在A /提供足够的细节之间犹豫不决,以便每个人都可以检查您是否处于XY问题情况下和B /只是专注于要实现的精确目标。我认为(观点)您可以通过足够仔细地描述您的原始问题和您尝试实现的解决方案来消除这种犹豫。但是既然有人写了答案,这可能就不再那么重要了。
Michael Le BarbierGrünewald17年

Answers:


18

当然是。我一直都这样做。您可以为管道指定配置选项,其中之一是skipDefaultCheckout,这将导致管道跳过默认的“声明性:签出SCM”阶段。

skipDefaultCheckout选项记录在“ 管道语法”中,下面是一个示例Jenkinsfile,显示了如何使用它:

pipeline {
  agent { label 'docker' }
  options {
    skipDefaultCheckout true
  }
  stages {
    stage('commit_stage') {
      steps {
        echo 'sweet stuff here'
      }
    }
  }
}

1
你怎么样 在一个阶段中手动克隆存储库?
Oz123 '17

2
您可以运行checkout scm以在需要的地方手动克隆。请参阅devops.stackexchange.com/a/1916/2450
burnettk

5

如果您不使用声明性管道,则可以通过以下方法避免从SCM中检出:

node {
        skipDefaultCheckout()
        //...
}

1
您能否添加文档链接并解释有关skipDefaultCheckout()的更多信息?
030

与现有答案相比,我看不到任何附加值,这只是“尝试一下”,没有任何解释,也不是一个好的答案。
Tensibai

此答案可以很好地补充已接受的答案-并非每个人都将使用声明性Pipeline插件,因此,此方法适用于使用过程性插件的人。
RichVel

1

我认为您想要实现的是在Jenkins作业中处理Webhook负载。不需要使用bitbucket插件,它可能是为克隆存储库而设计的。

我相信这个stackoverflow答案可以为您提供帮助。


请在链接的答案中
加上

1
欢迎来到DevOps!虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
理查德·斯莱特

@RichardSlater我不确定DevOps上的政策,但其他站点的网络内链接除外。
小鸡

3
@chicks甚至StackOverflow链接都会受到链接腐烂的影响,通过总结问题,它可以清楚地表明答案者认为该链接已回答问题的其他原因。
理查德·斯莱特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.