Создать файл действий конвейера/рабочего процесса из сценария ARM
При развертывании службы приложений Azure из шаблона ARM я могу предоставить службе приложений дочерний ресурс, который указывает URI исходного репо для службы приложений. Кроме того, этот дочерний ресурс может создать YML-файл действия рабочего процесса github, а ЗАТЕМ зафиксировать этот файл в вышеупомянутом репозитории.
Однако в файле YML автоматически сгенерированного действия рабочего процесса есть как ошибки, так и недостатки. Как следствие, вместо этого я хочу, чтобы мой шаблон ARM содержал сценарий ARM, который создает/шаблонизирует мой собственный файл рабочего процесса github... и фиксирует его в соответствующем репозитории.
Я предполагаю, что это возможно. Есть ли у кого-нибудь примеры сценариев PowerShell (или bash), которые это сделают?
Шаг за шагом, я думаю, это будет выглядеть так:
- Шаблон ARM развертывает службу приложений с именем «X» и использует
sourcecontrols
дочерний ресурс, чтобы также связать службу приложений с репозиторием (но не создает файл рабочего процесса автоматически). - Затем выполняется «сценарий» ARM и...
- Извлекает XML-файл «профиль публикации» из только что созданной службы приложений «X».
- Получает адрес репозитория той же службы приложений "X".
- Создает секрет репозитория github, который содержит предыдущий профиль публикации.
- Создает настраиваемый файл рабочего процесса github со ссылкой на профиль публикации.
- Фиксирует настроенный файл рабочего процесса в репозиторий.
Я полагаю, что упрощенным вариантом вышеизложенного было бы позволить шаблону ARM создать «неполноценный» файл рабочего процесса github, а затем позволить сценарию на основе ARM просто изменить и зафиксировать обновления в предыдущем автоматически сгенерированном файле рабочего процесса. Единственная загвоздка для этого упрощенного подхода — может быть то, что в момент фиксации первого файла рабочего процесса он может немедленно запустить сборку (до того, как измененный файл рабочего процесса будет правильно размещен на месте).
Между прочим, причина, по которой я говорю, что в автоматически сгенерированном файле рабочего процесса есть ошибки и недостатки, двояка. Автоматически созданный файл рабочего процесса github по умолчанию...
- Не позволяет указать папку приложения в репозитории .
- У меня нет возможности указать специальный шаг сборки (а именно, предоставить команду для запуска миграции базы данных Entity Framework).