GitLab 包注册表 Nuget 包每组

时间:2021-01-26 11:42:31

标签: .net-core gitlab nuget gitlab-ci

在我的 GitLab 中,我将多个 dotnet 核心项目(插件)放置在名为 Plugins 的组下,在这些项目中的每一个中,我添加了一个 CI 步骤将它们打包到 nuget 包中并推送它们到 GitLab 包注册表。我按照文档:https://docs.gitlab.com/ee/user/packages/nuget_repository/index.html 并在 .gitlab-ci.yaml 中放置了此配置:

image: mcr.microsoft.com/dotnet/sdk:5.0

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - dotnet pack -c Release
    - dotnet nuget add source "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json" --name gitlab --username gitlab-ci-token --password $CI_JOB_TOKEN --store-password-in-clear-text
    - dotnet nuget push "bin/Release/*.nupkg" --source gitlab
  only:
    - master

而不是添加项目级源(这对我有用)"$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/packages/nuget/index.json" 我将它替换为组级别端点 "$CI_SERVER_URL/api/v4/groups/{group-id}/-/packages/nuget/index.json" 使用部署令牌进行身份验证,因为我希望该组下的所有项目都有一个源,每次 nuget cmd 尝试推送包时都会显示此错误

<块引用>

error: ERROR: 此版本的nuget.exe 不支持将包更新为包源my-source

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我也遇到了这个。我找到了这个链接 https://gitlab.vaultic.com/help/user/packages/workflows/project_registry.md

链接中建议的想法是在组中创建一个项目,将所有包推送到该项目。这并不理想,直接推送到组会更好,但它是一种解决方法,不需要 Visual Studio 中的多个 Nuget 源。 (截至 2021 年 2 月,希望未来支持组级推送)

相关问题