• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cameri / nostream / 41228990797
77%

Build:
DEFAULT BRANCH: main
Ran 31 Oct 2026 06:23PM UTC
Jobs 2
Files 319
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Oct 2026 06:21PM UTC coverage: 76.759%. Remained the same
41228990797

push

github

web-flow
ci(deploy): retry the website deploy step on a transient Cloudflare failure (#1005)

## What

The website deploy step now goes through
`.github/scripts/deploy-with-retry.sh` in both
`deploy-website-preview.yml` and `deploy-website.yml`. The build is
untouched; only the `wrangler deploy` call is wrapped.

[Run
40103130697](https://github.com/cameri/nostream/actions/runs/40103130697)
failed at `Deploy the preview worker` with:

```
✘ [ERROR] A request to the Cloudflare API (/accounts/…/workers/scripts/nostream-web-pr-969/assets-upload-session) failed.
  An unknown error has occurred. [code: 10013]
```

The build had already succeeded, the run one minute earlier on the same
branch passed, and the failing commit only deleted five lines from
`Peering.astro`. One transient failure in roughly five runs is enough to
make the job lie about the change it is testing.

## Behaviour

- **3 attempts**, 10 s then 30 s of backoff — about a minute of added
time in the worst case.
- **Per-attempt timeout** (180 s, `DEPLOY_ATTEMPT_TIMEOUT`) plus
`timeout-minutes: 12` on the step, so a stalled upload cannot hold the
job.
- **Only transient signals retry**: `code: 10013`, an HTTP 5xx, a
connection reset, and an expired attempt timeout. An authentication
failure, a missing environment or a wrangler validation error fails on
the first attempt and is reported as `::error::`.
- **Every retry is announced** with `::warning::` naming the attempt and
the reason, so the flake rate stays visible in the Actions UI rather
than disappearing behind a green job.

The command is passed in as arguments, so each workflow keeps its own
invocation — `npx wrangler` for the preview, `pnpm exec wrangler … --var
CANONICAL_HOST:"$CANONICAL_HOST"` for production — and its quoting.

## Tests

`test/unit/scripts/deploy-with-retry.spec.ts` runs the real script
against a stub `wrangler` on `PATH` that records every invocation:

```
deploy-with-retry.sh
  ✔ retries a Cloudflare 10013 failure and names... (continued)

4337 of 6162 branches covered (70.38%)

Branch coverage included in aggregate %.

9419 of 11759 relevant lines covered (80.1%)

778.5 hits per line

Jobs
ID Job ID Ran Files Coverage
1 Integration - 41228990797.1 31 Oct 2026 06:23PM UTC 319
33.47
GitHub Action Run
2 Unit - 41228990797.2 31 Oct 2026 06:25PM UTC 319
74.11
GitHub Action Run
Source Files on build 41228990797
  • Tree
  • List 319
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #41228990797
  • f58ae15e on github
  • Prev Build on main (#41225906361)
  • Next Build on main (#41229750741)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc