Deploy to the edge in seconds. No account required for sandbox previews.
- uses: solcreek/deploy-action@v1
with:
dir: ./distEvery PR gets a live preview URL. No signup, no API key.
- uses: solcreek/deploy-action@v1
with:
token: ${{ secrets.CREEK_TOKEN }}
prod: trueProduction deploys run from your project root and read creek.toml. Don't set dir
for production: dir always uploads a static 60-minute sandbox, ignoring the token,
creek.toml and any worker.
name: Preview
on: pull_request
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci && npm run build
- uses: solcreek/deploy-action@v1
id: creek
with:
dir: ./dist
- uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `**Creek Preview** — deployed in ${${{ steps.creek.outputs.duration }}}ms\n\n${{ steps.creek.outputs.url }}`
})name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci && npm run build
- uses: solcreek/deploy-action@v1
id: creek
with:
token: ${{ secrets.CREEK_TOKEN }}
prod: true
- run: echo "Deployed to ${{ steps.creek.outputs.url }}"# No dir needed — Creek detects your framework and build output
- uses: actions/checkout@v4
- run: npm ci && npm run build
- uses: solcreek/deploy-action@v1Creek auto-detects dist/, build/, out/, or reads creek.toml.
- uses: solcreek/deploy-action@v1
with:
working-directory: ./website
token: ${{ secrets.CREEK_TOKEN }}
prod: trueworking-directory is where creek deploy runs, so creek.toml in that folder is used.
| Input | Required | Default | Description |
|---|---|---|---|
working-directory |
No | . |
Project directory to deploy from (e.g. a monorepo package) |
dir |
No | auto-detect | Static directory to upload as a sandbox. Sandbox only; incompatible with prod |
token |
No | — | Creek API key (get one). Omit for sandbox mode. |
prod |
No | false |
Deploy to production. Requires token |
demo |
No | — | Deprecated: no longer supported by the Creek CLI; setting it fails the step |
protect |
No | — | Deprecated: no longer supported by the Creek CLI; setting it fails the step |
| Output | Description |
|---|---|
url |
Deployed URL |
preview-url |
Preview URL (authenticated deploys only) |
sandbox-id |
Sandbox ID (sandbox mode only) |
deployment-id |
Deployment ID (authenticated deploys only) |
duration |
Deploy duration in milliseconds |
mode |
sandbox or production |
Sandbox (no token, or dir) |
Production (token + prod: true) |
|
|---|---|---|
| Account required | No | Yes |
| TTL | 60 minutes | Permanent |
| Custom domain | No | Yes |
| Rate limit | 10/hr | Unlimited |
| Use case | PR previews, demos | Shipping to production |
This action runs npx creek deploy --json under the hood (--prod when prod: true). Only stdout is parsed as JSON; CLI warnings on stderr are logged. The Creek CLI auto-detects your framework, collects build output, and deploys to Cloudflare's edge network.
- Sandbox mode: Deploys to
*.creeksandbox.com(no auth, 60 min TTL) - Production mode: Deploys to
*.bycreek.comor your custom domain
- Creek — Platform homepage
- CLI Documentation — Full CLI reference
- GitHub — Source code
Apache 2.0