Cloudflare Workers for proxying ESPresense artifacts and releases.
- espresense-artifact-proxy - Proxies GitHub Actions artifacts
- Route:
espresense.com/artifacts/*
- Route:
- espresense-release-proxy - Proxies GitHub releases
- Route:
espresense.com/releases/*
- Route:
# Install dependencies
cd espresense-artifact-proxy && npm install
cd espresense-release-proxy && npm install
# Run tests
npm run test:all
# Validate deployments (dry-run, no actual deployment)
npm run check:all
# Local development
cd espresense-artifact-proxy && npm run dev
cd espresense-release-proxy && npm run dev# Deploy both workers in parallel
npm run deploy:all
# Deploy and run tests
npm run deploy:test
# Deploy individual workers
npm run deploy:artifact-proxy
npm run deploy:release-proxy
# Test deployment
npm run test:deploymentPull Requests:
- Runs tests and validates deployments (dry-run)
- No actual deployment occurs
- Ensures changes are deployable before merging
Master Branch:
- Automatically deploys to production on push
- Runs tests, deploys, and validates
Setup:
- Go to your GitHub repository settings
- Navigate to Secrets and Variables → Actions
- Add a new repository secret:
- Name:
CLOUDFLARE_API_TOKEN - Value: Your Cloudflare API token (create one at https://dash.cloudflare.com/profile/api-tokens)
- Name:
Required API Token Permissions:
- Account → Workers Scripts → Edit
- Zone → Workers Routes → Edit
Workflows:
validate.yml- Runs on PRs, validates without deployingdeploy.yml- Runs on master push, deploys to production
The deployment test suite validates both workers are functioning correctly:
npm run test:deploymentTests:
- Artifact proxy:
/artifacts/latest/download/master/esp32.bin - Release proxy:
/releases/latest-any/download/esp32.bin