gpt4 book ai didi

yaml - 如何在 Gitlab CICD Stage 上跳过重新初始化的现有 Git 存储库

转载 作者:行者123 更新时间:2023-12-04 11:35:55 26 4
gpt4 key购买 nike

下面是我的 YML 文件结构。我希望在不重新初始化 git 存储库的情况下运行后续阶段。 git 存储库应该只在构建阶段的第一阶段进行初始化。

variables:
GIT_STRATEGY: fetch

stages:
- build
- run_test
- run_test2

build_job:
variables:
test_env: "test"
stage: build
script:
- "powershell -File ./Scripts/BuildSolution.ps1"
only:
refs:
- TDD-G2

run_test:
variables:
test_env: "test"
stage: run_test
script:
- "powershell -File ./Project1/scripts/RunSelenium.ps1"
artifacts:
when: always
paths:
- ./Project1/TestResults

run_test2:
variables:
test_env: "test"
stage: run_test2
script:
- "powershell -File ./Project2/scripts/RunSelenium.ps1"
artifacts:
when: always
paths:
- ./Project2/TestResults

最佳答案

我面临着非常相似的问题,我有三个阶段的构建、测试和部署。在部署阶段,我想创建一个标签 like但是我遇到了一个奇怪的问题,即使在从远程删除标签后(注意:我独自在这个项目上工作),管道仍然不断失败,说标签已经存在。但一段时间后,同样的工作成功完成。
为了解决这个问题,我将策略设置为 clone (下面解释)仅用于部署(Git 存储库在此处再次重新初始化)作业,但对于构​​建和测试,它是 fetch(默认选项)。作为

variables:
GIT_STRATEGY: clone
对于 GitLab:

Git strategy

Introduced in GitLab Runner 8.9.

By default, GitLab is configured to use the fetch Git strategy, whichis recommended for large repositories. This strategy reduces theamount of data to transfer and does not really impact the operationsthat you might do on a repository from CI.


有两种选择。使用:
  • git clone:速度较慢,因为它为每个作业从头开始克隆存储库
  • git fetch: 即 默认 在 GitLab 中并且更快,因为它重新使用本地工作副本(如果它不存在,则回退到克隆)。建议这样做,尤其是对于大型存储库。

  • 详细阅读是 herehere
    希望对遇到此问题的人有所帮助。

    关于yaml - 如何在 Gitlab CICD Stage 上跳过重新初始化的现有 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64255647/

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