Конфигурация TeamCity не может быть восстановлена ​​из ленты TeamCity NuGet - PullRequest
0 голосов
/ 02 мая 2020

Я настраиваю некоторый CI с конфигурациями сборки, которые требуют некоторых пакетов NuGet. Эти пакеты NuGet построены на том же сервере, что приятно. Я прочитал, что могу использовать ленту TeamCity NuGet для удовлетворения своих требований. Я следовал этому руководству.

Я создал фид для проекта Build, который сгенерировал конечные точки v1, v2 и v3. Для индексации пакетов я выбрал первый вариант, а именно

Чтобы индексировать пакеты, опубликованные только для выбранных конфигураций сборки, добавьте в эти конфигурации сборки функцию компоновки индексатора пакетов NuGet.

как это казалось самым прямым. Функция NuGet packages indexer применяется к двум конфигурациям, которые создают артефакты пакета NuGet. Эти артефакты создаются правильно, как показано ниже:

enter image description here
Если я подключаю конечную точку v3 к Visual Studio Package Sources, например, я просто получаю запрос на аутентификацию с последующей ошибкой Unable to load the service index for source .../v3/index.json. Response status code does not indicate success: 401 (). Если я вставлю конечную точку v3 в браузер, я получу объект json с набором объектов со свойствами @id, @type и comment. v1 и v2 в браузере показывают мне файл XML с пустой коллекцией Packages.

Как я могу подтвердить, что мои пакеты действительно оказались в ленте, и / или я неправильно понимаю, как конечные точки используются?

Обновление : Оказывается, это было действительно недоразумение с моей стороны. В /v3/index.json перечислены действия, которые можно выполнить с фидом. Использование / v3 / query выводит список всех пакетов, размещенных в фиде.

Оставшаяся проблема - ошибка при попытке получить пакеты из фида. TeamCity выдает следующие ошибки:

C:\Program Files\dotnet\sdk\3.1.201\NuGet.targets(124,5): error : Unable to load the service index for source <host>/httpAuth/app/nuget/feed/<project>/<feed_name>/v3/index.json
C:\Program Files\dotnet\sdk\3.1.201\NuGet.targets(124,5): error :   Response status code does not indicate success: 401 ().

Помимо файла решения в моем хранилище есть следующее NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
     <add key="nugetserver" value="<host>/httpAuth/app/nuget/feed/<project>/<feed_name>/v3/index.json" />
  </packageSources>
</configuration>

Требуется ли что-то еще для подключения всех точек?

1 Ответ

0 голосов
/ 03 мая 2020

Оказывается, что TeamCity имеет изящную небольшую функцию, которая может довольно легко ссылаться на канал TeamCity в типе бегуна NuGet Installer как шаг сборки, помещая канал во вход Packages sources. Выполнив этот шаг сборки перед тем, который publishes моих файлов, все в порядке.

...