Я нахожусь в процессе настройки конвейеров Azure для создания и публикации проекта Angular, содержащего некоторые библиотеки, которые мы разработали, но у меня возникают некоторые проблемы с пониманием некоторых его частей, в частности, запуск конвейера выпуска для создания и публикациибиблиотеки.Я читал это руководство , чтобы узнать, как его настроить.
Построить конвейер (ы)
В настоящее время проект Angular содержит две библиотеки.Я создал два конвейера сборки, которые устанавливают зависимости библиотеки, соответственно строит одну из библиотек, архивирует папку сборки и публикует архив в $(Build.ArtifactStagingDirectory)
.Насколько я понимаю, это должно сделать его доступным для конвейера сборки.Больше ничего не было сделано в конвейере (ах) сборки.
Образ конвейера сборки
Конвейер релиза
Далее я создал конвейер релиза,В конвейере я добавил артефакт, установил тип источника на Build
и выбрал один из конвейеров сборки.Я включил Триггер непрерывного развертывания на артефакте и установил фильтр ветви построения из refs/tags/v*
, поскольку я экспериментировал со сборкой из тегов.
Затем, нана этапе я добавил задачу Extract files
с папкой назначения , установленной на $(System.DefaultWorkingDirectory)\extracted
.После этого я добавил задачу npm
с Command , установленным на publish
и Рабочая папка, которая содержит package.json , установленный на $(System.DefaultWorkingDirectory)\extracted
, и реестр в фид артефактов Azure..
Изображение конвейера выпуска
Запуск сборки
Как отмечалось выше, конвейер выпуска не запускается, если я добавляю тег в хранилище.
То, что я пробовал
Я попытался изменить триггер CD на артефакте в конвейере выпуска на ветку master
и зафиксировать в ветке, но это не вызвало освобождениеКонвейер либо.
Если я запускаю конвейер сборки вручную, конвейер выпуска запускается, но завершается с ошибкой
error enoent ENOENT: no such file or directory, open 'D:\a\r1\a\extracted\package.json'
Но с моей стороны это просто недоразумение относительно того, гдеопубликованный архив заканчивается.
Что бы я хотел, чтобы произошло
Чтобы конвейер выпуска работал, когда я добавляю тег версии в хранилище.
Лучшее решение дляя был бы, если бы я мог опубликовать две библиотекиОвен в проекте Angular с разными номерами версий, но я не уверен, как это сделать, по крайней мере, если бы я использовал теги для запуска релизов (тег был бы, например, v0.0.1
и, следовательно, не имеет смысла, если одна библиотека находится вверсия 0.0.3
и другая на 0.0.1
).
Второй лучший вариант - если я могу опубликовать обе библиотеки и просто сохранить их одинаковые номера версий.
Любая помощь и советыценится.Если какая-либо информация отсутствует, пожалуйста, дайте мне знать.
Правка - Решение
Полагаю, я неправильно понял, как функционируют триггеры на конвейерах освобождения.триггер на конвейере сборки для тегов.Для сборок на основе конструктора мне было непонятно, что это можно сделать, поскольку вы просто показываете ветви в раскрывающемся списке в фильтре веток на триггерах для конвейера сборки, но вы можете просто ввести refs/tags/v*
в Отфильтруйте мои ветви поле и нажмите Enter (также показано на рисунке ниже).
Создайте изображение триггера конвейера
Кредит @JukkaK за это.