提高 GitLab 流水线性能

Improving GitLab Pipeline Performance

提问人:Winter Wind 提问时间:10/5/2023 最后编辑:Winter Wind 更新时间:10/5/2023 访问量:33

问:

我正在尝试提高管道的性能,但在还原阶段遇到了严重的延迟。目前,还原和生成阶段大约需要 4 分钟才能完成。

下面是我的管道示例:

build:
  stage: build
  tags:
    - globalrunner
  script:
    - mkdir src

    - dotnet restore "example.csproj"
    - dotnet restore "example.csproj"
    - echo "Restore success"

    - dotnet build "example.csproj" -c Release -o /app/build 
    - dotnet build "example.csproj" -c Release -o /app/build 

  only:
    - tags
build-artifacts:
  stage: build-artifacts

  artifacts:
    paths:
      - ./app/publish/

  script:
    - dotnet publish "example.csproj" -c Release -o ./app/publish
    - dotnet publish "example.csproj" -c Release -o ./app/publish
持续集成 Gitlab-CI DevOps 流水线

评论


答:

0赞 Maxx 10/5/2023 #1
  1. 对依赖项使用缓存,这样可以防止管道在每次运行时都必须从头开始下载依赖项。您可以使用操作/cache@v3
  2. 如果可能,尝试不同的跑步者
  3. 使用平行流道。这将允许管道同时运行多个作业。

评论

0赞 Winter Wind 10/5/2023
我用过,但它给了我一个错误dotnet build --parallel "./Host.Core/Host.Core.csproj" -c Release -o /app/build --no-restoreMSBUILD : error MSB1001: Unknown switch. Switches appended by response files: Switch: --parallel For switch syntax, type "MSBuild -help"
0赞 Maxx 10/5/2023
这意味着 dotnet build 命令不支持 --parallel 开关。若要并行生成多个项目,可以使用带有 /m 开关的 MSBuild 命令行工具。使用 /m 开关可以指定要同时生成的最大项目数。ou 还可以使用 MSBuild 命令通过将项目文件列表传递给该命令来并行生成多个项目。