definizione jobs.deployment.strategy.runOnce
La strategia di distribuzione runOnce implementa le modifiche eseguendo ogni passaggio una volta.
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.
Definizioni che fanno riferimento a questa definizione: jobs.deployment.strategy
Proprietà
preDeploy
preDeployHook.
Pre-distribuire hook per la strategia di distribuzione runOnce.
deploy
deployHook.
Distribuire hook per la strategia di distribuzione runOnce.
routeTraffic
routeTrafficHook.
Indirizzare l'hook del traffico per la strategia di distribuzione runOnce.
postRouteTraffic
postRouteTrafficHook.
Post-route traffic hook for runOnce deployment strategy .Post route traffic hook for runOnce deployment strategy.Post route traffic hook for runOnce deployment strategy.
on
onSuccessOrFailureHook.
In caso di esito positivo o negativo dell'hook per la strategia di distribuzione runOnce.
Commenti
runOnce
è la strategia di distribuzione più semplice in cui tutti gli hook del ciclo di vita, ovvero preDeploy
deploy
, routeTraffic
e postRouteTraffic
, vengono eseguiti una sola volta. on:
success
Viene quindi eseguito o on:
failure
.
Descrizioni degli hook del ciclo di vita
preDeploy
: usato per eseguire i passaggi che inizializzano le risorse prima dell'avvio della distribuzione dell'applicazione.
deploy
: usato per eseguire i passaggi che distribuiscono l'applicazione. L'attività Scarica artefatto verrà inserita automaticamente solo nell'hook deploy
per i processi di distribuzione. Per interrompere il download degli artefatti, usare - download: none
o scegliere elementi specifici da scaricare specificando l'attività Scarica artefatto pipeline.
routeTraffic
: usato per eseguire i passaggi che servono il traffico alla versione aggiornata.
postRouteTraffic
: usato per eseguire i passaggi dopo l'instradato del traffico. In genere, queste attività monitorano l'integrità della versione aggiornata per l'intervallo definito.
on: failure
o on: success
: usato per eseguire i passaggi per le azioni di rollback o la pulizia.
Esempio
Il frammento di codice YAML di esempio seguente illustra un semplice uso di un processo di distribuzione usando la runOnce
strategia di distribuzione. L'esempio include un passaggio di estrazione.
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
Con ogni esecuzione di questo processo, la cronologia di distribuzione viene registrata nell'ambiente smarthotel-dev
.
Nota
- È anche possibile creare un ambiente con risorse vuote e usarlo come shell astratta per registrare la cronologia di distribuzione, come illustrato nell'esempio precedente.
L'esempio seguente illustra come una pipeline può fare riferimento sia a un ambiente che a una risorsa da usare come destinazione per un processo di distribuzione.
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)
Questo approccio presenta i vantaggi seguenti:
- Registra la cronologia di distribuzione in una risorsa specifica all'interno dell'ambiente, anziché registrare la cronologia in tutte le risorse all'interno dell'ambiente.
- I passaggi del processo di distribuzione ereditano automaticamente i dettagli di connessione della risorsa (in questo caso uno spazio dei nomi Kubernetes,
smarthotel-dev.bookings
), perché il processo di distribuzione è collegato all'ambiente. Ciò è utile nei casi in cui vengono impostati gli stessi dettagli di connessione per più passaggi del processo.