gpt4 book ai didi

yaml - Gitlab CI : Clone repo only before first build in pipeline

转载 作者:行者123 更新时间:2023-12-01 13:39:00 24 4
gpt4 key购买 nike

我在 Gitlab CI 的 .yml 文件中有大约 5-10 个构建。为了节省时间,我想知道是否有办法在每项工作之间不重新克隆 repo 协议(protocol)。理想情况下,repo 将被克隆一次,然后运行所有 3 个作业。我也不想将这些作业合并到一个构建中,因为我想单独查看每个作业的结果(当它们合并时,gitlab 的“通过/失败”只是最后一个作业的结果)。

我不想简单地执行 git fetch 因为我想在开始时有一个新的克隆。

stages:
- run

job1:
stage: run
script:
- pwd
- make all TEST=job1

job2:
stage: run
script:
- pwd
- make all TEST=job2

job3:
stage: run
script:
- pwd
- make all TEST=job3

...

最佳答案

我也在纠结这个话题。
实际上,我首先进行了结帐阶段(使用 GIT_STRATEGY: clone),然后是包含多个作业和 GIT_STRATEGY: fetch 的构建阶段。
这确保了 repo 最初是真正完全克隆的,并且只为每个构建步骤获取。也许这对您也有帮助。

stages:
- checkout
- build

checkout:
variables:
GIT_STRATEGY: clone
GIT_SUBMODULE_STRATEGY: recursive

stage: checkout
script: '@echo Checking out...'

build:commander:
stage: build
variables:
GIT_STRATEGY: fetch
script:
- _Publish.bat commander
artifacts:
paths:
- BuildArtifacts\Commander\**

build:login:
stage: build
variables:
GIT_STRATEGY: fetch
script:
- _Publish.bat login
artifacts:
paths:
- BuildArtifacts\Login\**

build:cli:
stage: build
variables:
GIT_STRATEGY: fetch
script:
- _Publish.bat cli
artifacts:
paths:
- BuildArtifacts\Cli\**

关于yaml - Gitlab CI : Clone repo only before first build in pipeline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470006/

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