gpt4 book ai didi

git - 如何在使用 Bitbucket Pullrequest Builder Plugin 时只 checkout Jenkinsfile 而不是整个分支?

转载 作者:行者123 更新时间:2023-12-02 03:02:41 27 4
gpt4 key购买 nike

背景:

我正在使用的 Jenkins 插件是:

  • Bitbucket 插件
  • Bitbucket Pullrequest Builder 插件

  • 我工作的公司正在使用 Jira + Bitbucket。

    我通过创建 Jenkins“Bitbucket 团队”作业在 Jenkins 中实现了自动构建,该作业自动扫描整个公司的 Bitbucket 组织存储库和每个存储库中的所有分支,并自动为每个存储库中的每个分支构建作业。

    打开 pull 请求或将提交推送到这些存储库之一后,Jenkins 会分别触发该分支和 pull 请求的构建。
    Jenkinsfile管道在所有存储库上都是相同的。

    该作业有一些需要运行 Docker 的阶段,为此,有一个 Jenkins slave 与 Docker 一起安装。

    其中一个阶段正在运行 docker-compose为此,它需要一个 docker-compose.yml位于存储库中的文件。

    现在我的问题:

    负责扫描 BitBucket 组织的工作驻留在 Jenkins master 上,这意味着第一次 checkout 是在 Jenkins master 工作区中完成的,而构建的主要阶段之一( docker-compose)发生在 Jenkins 上从“Docker”机器,所以当它到达那个阶段时,存储库中的文件在那里丢失,所以我使用 checkout scm再次内 node('docker'){}将新提交的文件 pull 入 docker 机器工作区。

    这意味着存储库被克隆了两次;一次通过识别提交/PR 的扫描作业进入 Jenkins master 的工作区,第二次由 Jenkins docker slave 进入它的工作区。

    目前公司的存储库还没有那么大,但将来它们可能会变得更大,我想确保这些工作尽快完成运行。

    所以我想知道是否有可能以某种方式覆盖“BitBucket 插件”以仅从完成提交/PR 的分支而不是整个分支中 check out Jenkinsfile。

    这样的事情可能吗?

    最佳答案

    pipeline options您可以设置skipDefaultCheckout .

    Skip checking out code from source control by default in the agent directive. For example: options { skipDefaultCheckout() }



    然后它会发现(并运行)您的 Jenkinsfile,但不会自动 check out 整个分支。

    关于git - 如何在使用 Bitbucket Pullrequest Builder Plugin 时只 checkout Jenkinsfile 而不是整个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44820520/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com