Nightly GitHub Actions smoke test for the Sume API: $0.125 a run

A scheduled workflow submits a 2 s Wan 3.0 480p clip, polls and downloads it. $0.125 a night is $3.75 a month. Full YAML with curl and jq.

4 min readSume
All posts

A nightly smoke test that submits a 2 s Wan 3.0 clip at 480p costs 2 x $0.0625 = $0.125 a run, or $3.75 over 30 nights. It proves the key, the model id, the submit, the poll and the content download still work, which is everything an integration needs to keep working.

What the schedule costs

Use the smallest legal call so a forgotten workflow stays cheap. Wan 3.0 accepts 2 to 30 s at 480p, 720p and 1080p. Add a timeout so a stuck job fails the run instead of burning runner minutes.

The smoke test does not need an audio or reference input; keep the body to model, prompt, duration and resolution.

Cost of the smoke test by cadence, 2 s Wan 3.0 480p at $0.125 (read 2026-10-09)
CadenceRunsPer-second rateTotal
Per pull request, 50 a month50$0.0625$6.25
Nightly, 30 days30$0.0625$3.75
Weekly, 4 a month4$0.0625$0.50
Nightly for a year, 365 runs365$0.0625$45.625

The workflow

Store the key as the repository secret SUME_API_KEY. The job fails if the status is not completed within about two minutes or if the download is empty.

name: sume-smoke
on:
  schedule: [{ cron: "17 3 * * *" }]
  workflow_dispatch: {}
jobs:
  smoke:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    env:
      SUME_API_KEY: ${{ secrets.SUME_API_KEY }}
    steps:
      - run: |
          H="Authorization: Bearer $SUME_API_KEY"
          ID=$(curl -fsS -X POST https://api.sume.com/v1/videos \
            -H "$H" -H "Idempotency-Key: $(uuidgen)" -H "Content-Type: application/json" \
            -d '{"model":"wan-3.0","prompt":"A red ball rolls on a floor","duration":2,"resolution":"480p"}' | jq -r .id)
          for i in $(seq 1 24); do
            S=$(curl -fsS "https://api.sume.com/v1/videos/$ID" -H "$H" | jq -r .status)
            [ "$S" = completed ] && break
            case "$S" in failed|cancelled) exit 1;; esac
            sleep 5
          done
          [ "$S" = completed ]
          curl -fsS "https://api.sume.com/v1/videos/$ID/content?index=0" -H "$H" -o smoke.mp4
          test -s smoke.mp4

Gotchas

The cron runs in UTC and GitHub can delay scheduled runs, so do not alert on a single late start. A failure of this test can mean the provider is busy, not that your integration is broken; alert on two in a row.

Scheduled workflows are disabled on a repository after a period without activity, so check the Actions tab if the nightly run goes silent.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume