Мы можем публиковать пакеты Nuget на внутренние каналы, размещенные в Azure Artifacts легко через трубопроводы, определенные в файлах ЯМЛ.
Используя Azure Artifacts , мы можем опубликовать пакеты Nuget в частную (или публичную) подачу Nuget. Эти каналы могут быть выделены в Azure DEVOPS на уровне организации, либо на уровне проекта.
Создание частного подачи Nuget в Azure DevOps действительно просто. В этой статье ниже показано, что вы можете настроить один. Если вы следуете, и вы еще не настроили внутренний канал, прекратите читать эту статью и посмотрите статью здесь Отказ Как только вы закончите с этим, вы можете вернуться сюда.
Этот пост покажет вам, как мы можем использовать файл сборки YAML для публикации пакетов Nuget, которые мы создаем для наших собственных частных каналов в Azure Artifacts.
Теперь у вас может быть мнение на YAML в целом и да, мы можем достичь того же результата через классический пользовательский интерфейс, но мне нравится иметь возможность включить файлы сборки в нашем репозитории кода и предоставлять мне возможность проверить историю Наш файл сборки, используя историю GIT этого файла YAML.
Чтобы опубликовать наш пакет Nuget нашего внутреннего корма, нам нужно сделать следующее:
- Создайте наш пакет Nuget.
- Решите нашу стратегию версий для нашего пакета.
- Опубликуйте свой пакет на наш внутренний канал.
Для этого поста я собираюсь использовать вспомогательную библиотеку, которую я использовал для моего собственного приложения для здоровья. Если вы хотите взглянуть на него, читая это (он включает в себя файл yaml), проверьте это здесь Отказ
Создание нашего пакета Nuget
Перед прыжками в мясо нашего файла сборки нам нужно установить некоторые вещи:
Давайте сломаем это:
- Мы запускаем сборку, чтобы уйти каждый раз, когда мы зарабатываем нашему Главная ветка.
- Мы устанавливаем некоторые общие переменные, которые нам понадобится на протяжении всего нашего построенного трубопровода.
- Мы используем изображение Linux в качестве агента построения.
- Затем мы устанавливаем .NET Core SDK на нашем агенте по сборке, восстановить наш проект, используя Dotnetcorecli Задача, которая запускает команду RESTORE, затем мы строим проект, используя другую задачу, которая запускает команду сборки.
Чтобы создать пакет Nuget в нашем файле сборки, нам нужно добавить Dotnetcorecli Задача так:
В этой задаче мы запустим команду Pack и сообщая заданию упаковать путь нашего проекта, который я определил ранее в файле yaml. Я установил nobuild Аргумент True, так как я уже построил свой проект.
Моя пакет — .NET Стандартный пакет. Для .СЕТЬ Ядро и .net Стандартные пакеты , Microsoft рекомендует вам использовать Dotnetcorecli задачи. Если вы строите Пакеты для .NET. Рамки Вы можете использовать Nuget задача.
Стратегия версий
Есть пара способов, которыми мы можем сделать это. В моей упаковке .csproj Файл, я указал номер своей версии так:
Если мы хотели достичь этого через задачу сборки, определенной в YAML, мы можем сделать так, как это:
С Nuget Задача, мы можем использовать Главный. Незначительный. Патч Схема семантической версии для наших сборков. Однако после того, как версия была создана, мы не можем обновить или заменить эту версию. Они неизменны. Чтобы произвести новые версии нашего пакета каждый раз, когда мы их обновляем, мы можем сделать следующее:
- Используйте $ (Rev: .r) Переменная для номера версии, которую мы хотим увеличить. Это автоматически увеличивает номер сборки для этой переменной каждый раз, когда мы нажимаем в нашу ветку, сохраняя остальные переменные константы.
- Используйте $ (Дата: yyyymmdd) переменная. Это идеально подходит для создания предварительных меток для сборки, что позволяет нам сохранить наши основные, незначительные и постоянные версии патч-версий.
Публикация нашего пакета до корма
Теперь, когда у нас есть пакет, мы можем опубликовать его на наш канал. Для того, чтобы публиковать наши артефакты Azure Artifacts, нам нужно будет установить Сборка проекта Создание Сервисной идентичности, чтобы быть вкладчиком по корму Отказ
Как только мы позволили этому, мы можем добавить следующий YAML в наш сборнический трубопровод:
Вот, мы используем Nugetauthenticent Команда для аутентификации нашего сервера сборки для нажимания пакетов на наш внутренний подарок Nuget. Затем мы запускаем NugetCommand Задача с помощью команды push для толкания нашего пакета (сохраняется в нашем каталоге постановки артефакта) на наш внутренний подарок Nuget.
Здесь мы использовали / Как наши VST кормит для публикации. Помните, что мы можем обладать нашим кормам на уровне проекта, либо на уровне организации в Azure DEVOPS. Поскольку мой корм на колесе на уровне проекта мне нужно поставить название проекта здесь.
Я также включил nugetfeedtype Аргумент и заявил, что наше поле целевого поля является внутренним кормом. Так как мы используем толчок Команда В задаче команды Nuget этот аргумент требуется.
Полный файл yaml
Вот наш полный файл YAML:
Вывод
Надеемся, что вы увидите, как просто публиковать наши пакеты Nuget в частном канале Nuget в Azure Artifacts. Это не ограничивается только частными каналами Nuget, мы также можем публиковать пакеты от DevOps до nuget.org.
Если вы хотите узнать больше о Azure Artifacts, я рекомендую проверить Документация Это охватывает такие темы, как настройка кормов, публикуют Nuget (и другие) типы пакетов и многое другое.
Если у вас есть какие -либо вопросы об этой статье, пожалуйста, дайте мне знать в комментариях, или вы можете обратиться ко мне в Twitter Отказ
Оригинал: «https://dev.to/willvelida/publishing-nuget-packages-to-a-private-azure-artifacts-feed-with-yaml-build-files-3bnb»