【问题标题】:How to skip 'Reinitialized existing Git repository' on Gitlab CICD Stage如何在 Gitlab CICD 阶段跳过“重新初始化现有 Git 存储库”
【发布时间】:2021-01-23 02:16:48
【问题描述】:

下面是我的 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

【问题讨论】:

  • 能否给个提示,你的问题解决了吗?我也遇到过同样的情况。

标签: yaml gitlab-ci


【解决方案1】:

我遇到了非常相似的问题,我经历了三个阶段的构建、测试和部署。在部署阶段,我想创建一个标签 like 但我遇到了一个奇怪的问题,即使从远程删除标签(注意:我独自在这个项目上工作)管道不断失败,说标签已经存在。但一段时间后,同样的工作成功完成。

为了解决这个问题,我将策略设置为clone(如下所述),仅用于部署(Git 存储库在此处再次重新初始化)作业,但用于构建和测试它是 fetch(默认选项)。作为

variables:
  GIT_STRATEGY: clone

对于 GitLab:

Git 策略

在 GitLab Runner 8.9 中引入。

默认情况下,GitLab 配置为使用 fetch Git 策略,该策略 建议用于大型存储库。这种策略减少了 要传输的数据量并且不会真正影响操作 您可以在 CI 的存储库上执行此操作。

有两种选择。使用:

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

详细阅读是herehere

希望对遇到此问题的人有所帮助。

【讨论】:

    【解决方案2】:

    您可以使用变量 GIT_CLEAN_FLAGS 来指示 gitlab-runner 以受限的方式调用 git clean。例如,通过指定none,你可以禁止调用git clean,这样前一阶段产生的文件就不会被删除。

    run_test:
        variables:
            test_env: "test"
            GIT_CLEAN_FLAGS: none
    

    https://docs.gitlab.com/ee/ci/runners/configure_runners.html#git-clean-flags https://docs.gitlab.com/ee/ci/large_repositories/#git-clean-flags

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 2022-10-18
      • 2016-07-30
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多