17

我们正在使用VSTS托管的构建服务器构建 CD 管道。恢复 Nuget 需要 3 分钟以上。这时间太多了。

我怎样才能让它运行得更快?我们可以使用任何类型的缓存系统吗?

4

2 回答 2

7

更新:缓存现在普遍可用(文档

缓存目前在功能管道上,日期待定。同时,您可以使用 Upload Pipeline Artifact/Download Pipeline Artifact 任务将结果存储在您的 Azure DevOps 帐户中以加快/下载速度。

可以在此处跟踪进行中的工作。

与此同时,Microsoft 1ES(一个工程系统,内部组织)发布了他们的内部解决方案,该解决方案使用通用包将任意包存储在您的 Azure DevOps 帐户中。它非常快,因为它可以在以前的包之间同步增量。有一个关于如何配置 Azure Pipeline 以将 NuGet 包缓存存储在源目录中以便任务缓存它们的示例

variables:
  NUGET_PACKAGES: $(Build.SourcesDirectory)/packages
  keyfile: '**/*.csproj, **/packages.config, salt.txt'
  vstsFeed: 'feed name'

steps:
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCache@1
  displayName: 'Restore artifact'
  inputs:
    keyfile: $(keyfile)
    targetfolder: $(NUGET_PACKAGES)
    vstsFeed: $(vstsFeed)
于 2019-05-24T21:14:24.510 回答
1

在我的场景中,Nuget 还原在交互运行时运行得很快,但在通过 CD 管道 (Jenkins) 运行时运行得非常慢。设置revocation check modeoffline我的 Nuget 恢复时间从 13 多分钟减少到 30 秒以下(我在这里找到了这个解决方案)

在运行 Nuget 还原之前,我在构建脚本中设置了一个环境变量:

  • SET NUGET_CERT_REVOCATION_MODE=offline

免责声明:关闭证书吊销会产生影响 - 请参阅此链接

于 2021-01-27T15:09:50.907 回答