name: 'Health Check'
description: 'Poll health endpoint until ready'
inputs:
  url:
    description: 'Health check URL'
    required: true
  timeout:
    description: 'Timeout in seconds'
    required: false
    default: '300'
  interval:
    description: 'Polling interval in seconds'
    required: false
    default: '5'

runs:
  using: 'composite'
  steps:
    - name: Wait for health
      shell: bash
      run: |
        RETRIES=$(($${{{{ inputs.timeout }}}} / ${{{{ inputs.interval }}}}))
        curl --retry $RETRIES \
             --retry-delay ${{{{ inputs.interval }}}} \
             --retry-connrefused \
             --fail \
             ${{{{ inputs.url }}}}
