我无法将 NuGet 包推送到我们公司的 GitLab 包注册表中。
在我的 NuGet-Package 中,我打包了一些二进制文件。这是 Nuspec 文件:
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
<id>test</id>
<version></version>
<authors>Company</authors>
<description>Demo Project</description>
</metadata>
<files>
<file src="../../__out/test/**" target="" />
</files>
</package>
我构建了在 CI 中看起来不错的 nuget 包(我已经下载并检查了 nuget 文件)
构建后,我将带有此 CI 作业的 NuGet-Package 推送到注册表中。 Gitlab CI:
deploy:
stage: deployNuGet
image: mcr.microsoft.com/dotnet/sdk:5.0-buster-slim
script:
- 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 __out/package/test.0.0.1.nupkg" --source gitlab
这会导致以下 CI 日志:
$ 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
Package source with Name: gitlab added successfully.
warn : No API Key was provided and no API Key could be found for 'https://XXXX/api/v4/projects/XXXX/packages/nuget'. To save an API Key for a source use the 'setApiKey' command.
Pushing test.0.0.1.nupkg to 'https://XXXXXX/api/v4/projects/XXXXX/packages/nuget'...
PUT https://XXXXX/api/v4/projects/XXXXXX/packages/nuget/
Created https://XXXXX/api/v4/projects/XXXXXX/packages/nuget/ 780ms
Your package was pushed.
这在退出一段时间后效果很好,但现在我得到了不同的行为。
代替 test
包的是 NuGet.Temporary.Package
。
当我移过错误标志时,它会显示以下消息:
Invalide Package: failed metadate extraction
有人知道如何解决这个问题吗? 谢谢! 扬
答案 0 :(得分:0)
这是自我管理的 AWS 实例上的 gitlab (14.0.x) 错误。
还有一个 MR 可以解决这个问题。
这是一个 sulution https://gitlab.com/gitlab-org/gitlab/-/issues/335488#note_623985000