Определение jobs.deployment.strategy.runOnce
Стратегия развертывания runOnce развертывает изменения, выполняя каждый из своих шагов один раз.
runOnce:
preDeploy: # Pre deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where pre deploy steps will run.
deploy: # Deploy hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where deploy steps will run.
routeTraffic: # Route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where route traffic steps will run.
postRouteTraffic: # Post route traffic hook for runOnce deployment strategy.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post route traffic steps will run.
on: # On success or failure hook for runOnce deployment strategy.
failure: # Runs on failure of any step.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where post on failure steps will run.
success: # Runs on success of all of the steps.
steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
pool: string | pool # Pool where on success steps will run.
Определения, ссылающиеся на это определение: jobs.deployment.strategy
Свойства
preDeploy
preDeployHook.
Перехватчик предварительного развертывания для стратегии развертывания runOnce.
deploy
deployHook.
Перехватчик развертывания для стратегии развертывания runOnce.
routeTraffic
routeTrafficHook.
Перехватчик трафика маршрутизации для стратегии развертывания runOnce.
postRouteTraffic
postRouteTrafficHook.
Перехватчик трафика после маршрутизации для стратегии развертывания runOnce.
on
onSuccessOrFailureHook.
Об успешном или неудачном перехватчике для стратегии развертывания runOnce.
Комментарии
runOnce
— это самая простая стратегия развертывания, в которой все обработчики жизненного цикла, а именно preDeploy
deploy
, routeTraffic
и postRouteTraffic
, выполняются один раз. После этого выполняется on:
success
или on:
failure
.
Описание перехватчиков жизненного цикла
preDeploy
: используется для выполнения шагов, которые инициализируют ресурсы перед началом развертывания приложения.
deploy
: используется для выполнения шагов, которые развертывают приложение. Задача "Скачивание артефакта" будет автоматически внедрена только в deploy
перехватчик для заданий развертывания. Чтобы остановить скачивание артефактов, используйте - download: none
или выберите определенные артефакты для скачивания, указав задачу "Скачать артефакт конвейера".
routeTraffic
: используется для выполнения шагов, которые обслуживают трафик к обновленной версии.
postRouteTraffic
: используется для выполнения шагов после маршрутизации трафика. Как правило, эти задачи отслеживают работоспособность обновленной версии в течение определенного интервала.
on: failure
или on: success
: используется для выполнения шагов для действий отката или очистки.
Примеры
В следующем примере фрагмента КОДА YAML демонстрируется простое использование задания развертывания с помощью runOnce
стратегии развертывания. Пример включает шаг оформления заказа.
jobs:
# Track deployments on the environment.
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Creates an environment if it doesn't exist.
environment: 'smarthotel-dev'
strategy:
runOnce:
deploy:
steps:
- checkout: self
- script: echo my first deployment
При каждом выполнении этого задания журнал развертывания записывается в smarthotel-dev
среду.
Примечание
- Также можно создать среду с пустыми ресурсами и использовать ее в качестве абстрактной оболочки для записи журнала развертывания, как показано в предыдущем примере.
В следующем примере показано, как конвейер может ссылаться как на среду, так и на ресурс, который будет использоваться в качестве целевого объекта для задания развертывания.
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: ubuntu-latest
# Records deployment against bookings resource - Kubernetes namespace.
environment: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
# No need to explicitly pass the connection details.
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: |
$(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: |
$(imagePullSecret)
containers: |
$(containerRegistry)/$(imageRepository):$(tag)
Этот подход имеет следующие преимущества:
- Записывает журнал развертывания для определенного ресурса в среде, а не для всех ресурсов в среде.
- Шаги в задании развертывания автоматически наследуют сведения о подключении ресурса (в данном случае это пространство имен Kubernetes,
smarthotel-dev.bookings
), так как задание развертывания связано со средой. Это полезно в случаях, когда для нескольких шагов задания заданы одинаковые сведения о подключении.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по