शेल एक बार चुनें, या प्रति चरण
वर्कफ़्लो अपना शेल घोषित करता है और सभी चरण उसे विरासत में लेते हैं। घोषित न होने पर Dagu पहले PowerShell, फिर pwsh, फिर cmd.exe को प्राथमिकता देता है, इसलिए एक मशीन पर लिखा वर्कफ़्लो दूसरी पर भी अनुमानित रूप से चलता है।
- शेल स्ट्रिंग या ऐरे दोनों स्वीकार करता है; -NoProfile जैसे तर्कों की कोटिंग समस्या ऐरे रूप से टलती है
- चरण अपना आउटपुट नामित वेरिएबल में लेता है, जिसे बाद के चरण और पूर्वशर्तें पढ़ सकती हैं
- पूर्वशर्तें उसी मान पर चरण को नियंत्रित करती हैं, इसलिए पुनःआरंभ तभी होता है जब सेवा वास्तव में रुकी हो
# 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