Замена переменной среды в Nuget.config - PullRequest
0 голосов
/ 11 ноября 2019

У нас есть основное приложение dotnet с файлом Nuget.config. В рамках конвейера CI azure devops мы хотим прочитать и заменить переменные окружения в файле Nuget.config. Переменные среды / конвейера (USERNAME и PWD) настраиваются в задаче «Построить образ Docker» в конвейере CI. Сервер сборки Azure Devops CI работает на компьютере с Ubuntu.

Переменные окружения в MAC / Linux следует заменить следующим образом в соответствии с этой документацией.

Синтаксис "$USERNAME "в Nuget.config здесь не работает. Когда мы заменяем статические имя пользователя и пароль, они работают нормально.

Nuget.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="abcFeed" value="https://somedevops.com/xyz/packaging/someApps/nuget/v3/index.json" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <abcFeed>
      <add key="Username" value="$USERNAME"/>
      <add key="ClearTextPassword" value="$PWD"/>
    </abcFeed>
  </packageSourceCredentials>
</configuration>

Мы использовали приведенный ниже синтаксис со следующей документацией, ни один из них не работает: $ USERNAME, $ (USERNAME),% USERNAME%, $ USERNAME $

Каков правильный синтаксис или способ замены переменных окружения в файле Nuget.config конвейером Azure Devops?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Я считаю, что наши документы Nuget нуждаются в исправлении. Используйте одни и те же символы для замены переменных среды, независимо от платформы:% myPW% Я успешно протестировал с dotnet.exe 3.0.100 в Ubuntu 18. *

Пожалуйста, свяжитесь со мной по проблеме отслеживания, которую я назначил мне: https://github.com/NuGet/Home/issues/8662

0 голосов
/ 11 ноября 2019

Вместо этого вы можете использовать задачу Replace Tokens и настроить ее для обработки файла nuget.config.

Однако вы можете рассмотреть возможность использования подключения службы Nuget, поскольку это позволит избежать необходимости сохранятьУчетные данные Nuget в качестве переменных конвейера, а также делают их более безопасными, так как они будут отображаться в виде простого текста при замене в файле конфигурации.

Дополнительные сведения об использовании служебных подключений в DevOps Azure см. В документации Microsoft по адресу: https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#sep-nuget

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...