Я пытаюсь вызвать EXE с 3 параметрами, которые являются переменными CI, определенными в GitLab, но последний параметр переменной передается неправильно.
В частности, я вызываю 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.
Исполняемый файл nuget
был установлен вручную и добавлен в глобальную переменную PATH env системы.Runner находится на хосте Windows Server 2016 и использует PowerShell executor.Выполнение команды push вручную в PowerShell, замена переменных на их настроенные значения работает, как и ожидалось в этой системе.Доступ к /v3/index.json
с хоста бегуна завершается успешно без какой-либо аутентификации.
Я пробовал оба варианта -Param $UNQUOTED
и -Param "$QUOTED"
, но тоже не повезло.Есть предположения, что здесь может быть не так?