GitLab CI Проблемы с переменными - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь вызвать 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", но тоже не повезло.Есть предположения, что здесь может быть не так?

1 Ответ

0 голосов
/ 09 октября 2018

К вашему сведению: я забыл установить ветку master как защищенную, поэтому переменная NUGET_API_KEY все время была пустой.м (

...