Конвейер выпуска Azure: синхронизация файлы с фиксацией

Я впервые использую виртуальную машину Azure (Linux, Ubuntu 18), и мне было поручено настроить конвейер / выпуск для непрерывной разработки простого веб-сайта

Его должен работать следующим образом: когда основная ветвь привязана к Azure, автоматически запускает конвейер и выпускает его для развертывания в каталоге на виртуальной машине (сборка не задействована, это простой сайт Wordpress)

Мне удалось это получить работает следующим образом:

  1. Я установил конвейер, который просто получает код из git и копирует его в $ (Build.ArtifactStagingDirectory) (используя задачу копирования файлов)
  2. , а затем публикует его как артефакт (используя Publish Artifact) задача)

Затем конвейер выпуска, который выполняет следующие действия:

  1. копирует файлы артефактов в каталог (снова используя задачу «Копировать файлы»)

Он работает, но кажется хорошим. Есть некоторые очевидные проблемы:

  1. работает медленно: он будет копировать все файлы каждый раз, а не только то, что было изменено
  2. , если я удалю файл, он не будет удален в каталоге развертывания

Так что я хочу способ синхронизировать фиксацию git с каталогом сайта, перезаписывая только измененные файлы и удаляя все удаленные файлы, игнорируя файлы и каталоги в .git-ignore и т. д.

Кажется простым (я знаю, как это сделать с помощью хуков git), но я просто не могу найти способ сделать это в Azure DevOps

Возможно ли это? Может ли кто-нибудь дать мне направление?

0
задан 24 October 2020 в 00:49
1 ответ

Простым решением может быть простое использование задачи сценария bash или PowerShell на этапе развертывания, которая выполняет извлечение/проверку кода git в целевой папке на виртуальной машине.

Однако вы должны быть осторожны с тем, что извлекается и извлекается из git в целевом объекте развертывания. Используя переменную Release.Artifacts.{alias}.SourceVersion, как указано здесь, вы можете убедиться, что проверяете фиксацию, протестированную на предыдущем этапе конвейера

.
0
ответ дан 6 November 2020 в 20:46

Теги

Похожие вопросы