Skip to content

wait

Pause workflow execution for a specified duration. Use for rate limiting, progressive deployments, and timed delays between operations.

ParameterTypeRequiredDescription
funcstringyesMust be wait
args.durationstringyesHow long to wait (e.g., 5s, 1m, 500ms)
FormatExampleDescription
Ns30sN seconds
Nm5mN minutes
Nms500msN milliseconds
Combined1m30s1 minute and 30 seconds
FieldTypeDescription
result.outputstringConfirmation message with wait duration
steps:
- name: deploy
func: shell
do: kubectl apply -f deployment.yml
- name: wait_for_rollout
func: wait
args:
duration: 30s
- name: health_check
func: http
args:
url: "https://{{ vars.env }}.example.com/health"
method: GET
steps:
- name: deploy_canary
func: shell
do: |
kubectl set image deployment/app app=app:{{ vars.version }}
kubectl scale deployment/app-canary --replicas=1
- name: observe_canary
func: wait
args:
duration: 5m
- name: check_canary
func: http
args:
url: "https://{{ vars.env }}.example.com/health"
method: GET
- name: verify_canary
func: assert
args:
condition: '{{ eq steps.check_canary.status_code 200 }}'
message: "Canary must be healthy before full rollout"
- name: full_rollout
func: shell
do: kubectl scale deployment/app --replicas={{ vars.replicas }}
steps:
- name: call_api
func: http
args:
url: "https://api.example.com/process"
method: POST
body:
batch: "{{ vars.batch_id }}"
- name: rate_limit_pause
func: wait
args:
duration: 1s
- name: call_api_2
func: http
args:
url: "https://api.example.com/process"
method: POST
body:
batch: "{{ vars.batch_id_2 }}"
steps:
- name: run_migration
func: shell
do: python manage.py migrate
- name: stabilize
func: wait
args:
duration: 10s
- name: verify_schema
func: shell
do: python manage.py check --database default