我正在尝试使用3个参数调用EXE,这些参数是在GitLab中定义的CI变量,但是最后一个变量参数未正确传递。
具体地说,我正在调用nuget.exe将程序包推送到运行baget的本地服务器。
我的.gitlab-ci.yml
配置(仅相关部分):
NuGetDeploy:
stage: deploy
only:
- tags
tags:
- csharp
script:
- cd $BUILD_PROJECT
- mv *.nupkg "$NUGET_PKG_ID.nupkg"
- nuget push "$NUGET_PKG_ID.nupkg" -ForceEnglishOutput -Verbosity detailed -NoSymbols -Source $NUGET_FEED_URL -ApiKey $NUGET_API_KEY -NonInteractive
- cd ..
artifacts:
untracked: true
expire_in: 4 weeks
dependencies:
- NuGetPack
在NuGetDeploy
作业中发生错误:
$ nuget push "$NUGET_PKG_ID.nupkg" -ForceEnglishOutput -Verbosity detailed -NoSymbols -Source $NUGET_FEED_URL -ApiKey $NUGET_API_KEY -NonInteractive
NuGet Version: 4.7.1.5393
Pushing Skiba.Testspace.NuGetTest.nupkg to 'http://baget.mycompany.org/v2/package'...
PUT http://baget.skibapro.de/v2/package/
Please provide credentials for: http://baget.mycompany.org/v3/index.json
UserName: Password: An error was encountered when fetching 'PUT http://baget.mycompany.org/v2/package/'. The request will now be retried.
The HTTP request to 'PUT http://baget.mycompany.org/v2/package/' has timed out after 300000ms.
奇怪的是,当我交换Source和ApiKey参数
- nuget push "$NUGET_PKG_ID.nupkg" -ForceEnglishOutput -Verbosity detailed -NoSymbols -ApiKey $NUGET_API_KEY -Source $NUGET_FEED_URL -NonInteractive
然后发生此错误:
$ nuget push "$NUGET_PKG_ID.nupkg" -ForceEnglishOutput -Verbosity detailed -NoSymbols -ApiKey $NUGET_API_KEY -Source $NUGET_FEED_URL -NonInteractive
NuGet Version: 4.7.1.5393
Source parameter was not specified.
System.ArgumentException: Source parameter was not specified.
at NuGet.Commands.CommandRunnerUtility.ResolveSource(IPackageSourceProvider sourceProvider, String source)
at NuGet.Commands.PushRunner.<Run>d__0.MoveNext()
这意味着我的CI配置或GitLab的解释有问题。 NUGET_FEED_URL
设置为http://baget.mycompany.org/v3/index.json
,而NUGET_API_KEY
设置为不带空格的字母数字字符串。 NUGET_API_KEY
在GitLab的CI配置用户界面中被标记为受保护。
nuget
可执行文件已手动安装并添加到系统的全局PATH env var中。运行程序位于Windows Server 2016主机上,并使用PowerShell执行程序。在PowerShell中手动执行push命令,将变量替换为其配置的值即可在该系统上正常运行。无需任何身份验证即可从跑步者的主机访问/v3/index.json
。
我尝试了-Param $UNQUOTED
和-Param "$QUOTED"
的变体,也没有运气。猜猜这里可能有什么问题吗?
答案 0 :(得分:0)
仅供参考:我忘记将master分支设置为protected,因此NUGET_API_KEY
变量一直为空。 m(