--- name: Deploy static site to Bunny description: Safely synchronize a completed static website build to Bunny Storage. inputs: directory: description: Directory containing the completed static build and index.html. required: true storage-zone: description: Bunny Storage Zone name. required: true storage-endpoint: description: Regional Bunny Storage API hostname. required: false default: storage.bunnycdn.com purge-endpoint: description: Optional trusted static-site purge gateway base URL. required: false default: "" dry-run: description: Report changes without uploading or deleting files. required: false default: "false" runs: using: composite steps: - name: Synchronize static build shell: bash env: STATIC_SITE_DIRECTORY: ${{ inputs.directory }} BUNNY_STORAGE_ZONE: ${{ inputs.storage-zone }} BUNNY_STORAGE_ENDPOINT: ${{ inputs.storage-endpoint }} BUNNY_PURGE_ENDPOINT: ${{ inputs.purge-endpoint }} STATIC_SITE_DRY_RUN: ${{ inputs.dry-run }} run: | set -euo pipefail args=(bunny "$STATIC_SITE_DIRECTORY") if [[ "$STATIC_SITE_DRY_RUN" == "true" ]]; then args+=(--dry-run) elif [[ "$STATIC_SITE_DRY_RUN" != "false" ]]; then echo "dry-run must be true or false" >&2 exit 2 fi python3 "$FORGEJO_ACTION_PATH/static_site.py" "${args[@]}"