Choisir le shell une fois, ou par étape
Un workflow déclare son shell et toutes les étapes en héritent. Sans déclaration, Dagu privilégie PowerShell, puis pwsh, puis cmd.exe, de sorte qu'un workflow écrit sur une machine se comporte de façon prévisible sur une autre.
- Le shell accepte une chaîne ou un tableau ; la forme tableau évite les problèmes de guillemets avec des arguments comme -NoProfile
- Une étape capture sa sortie dans une variable nommée, lisible par les étapes suivantes et par les préconditions
- Les préconditions conditionnent une étape à cette valeur : le redémarrage n'a lieu que si le service est réellement arrêté
# service-health.yaml
schedule: "*/15 * * * *"
max_active_runs: 1
shell: powershell -NoProfile
steps:
- id: check_service
run: |
(Get-Service -Name 'MyAppSvc').Status
output: SVC_STATUS
- id: restart_if_stopped
run: Restart-Service -Name 'MyAppSvc'
depends: check_service
preconditions:
- condition: "${SVC_STATUS}"
expected: "Stopped"
retry_policy:
limit: 2
interval_sec: 30
mail_on:
failure: true