Mirrors the ethanjlewis.com pipeline structure:
- single combined build step (npm ci + test + build)
- deploy via npx wrangler to project halfstreet-io
- notify-success at priority 0, notify-failure at priority 1
- triggers on push to main + manual
Secret names are lowercase (cloudflare_api_token, cloudflare_account_id,
pushover_token, pushover_user) to match what's configured on the
halfstreet repo in Woodpecker.
Single notify step now runs for both success and failure
(when.status: [success, failure]), branching on
CI_PIPELINE_STATUS for the title. Success uses Pushover
priority -1 (quiet) so passing-build pings don't alert at
night; failures stay at priority 0 (default).
Uses pushover_token and pushover_user secrets configured in Woodpecker.
Step runs only on failure (when.status: failure) so successful runs stay
quiet. Message includes branch, commit message, and a link back to the
pipeline.