@heartidentity/heartify
v0.2.0
Published
Deploy static builds to heartify (uploads to Cloudflare Pages, registers the deploy, gates it behind a session).
Maintainers
Readme
@heartidentity/heartify
Deploy a static build to heartify with a single command and a single credential.
The CLI:
- exchanges your
hrty_deploy token for a short-lived, project-scoped Cloudflare Pages upload token (brokered by heartify — you never hold a Cloudflare account credential), - uploads the build's files directly to Cloudflare Pages (so there's no size limit at heartify), and
- registers the deploy with heartify, which creates the Pages deployment from the manifest, allocates a version index, and returns the gated preview URL.
Install
npm i -g @heartidentity/heartify
# or run ad-hoc: npx @heartidentity/heartify deploy ./dist -p <key>From inside this monorepo, build it directly:
pnpm --filter @heartidentity/heartify buildUsage
HEARTIFY_TOKEN=hrty_… heartify deploy ./dist --project test| Flag | Env | Default |
|---|---|---|
| --project, -p | — | (required) |
| --token | HEARTIFY_TOKEN | (required) |
| --url | HEARTIFY_URL | https://heartify.ch |
| --branch | auto (CI/git) | — |
| --commit-sha / --commit-message | auto (CI/git) | — |
| --idempotency-key | auto (gh-<run> / sha-<sha>) | — |
| --no-comment | — | comments on PRs by default |
Branch and commit metadata are auto-detected from GitHub Actions env vars
(falling back to local git). Control files _headers, _redirects, and
_routes.json at the deploy root are passed through to Pages.
GitHub Actions
On a pull_request run the CLI also writes step outputs (view_url, index,
deploy_id), a job summary, and upserts a PR comment with the preview URL
(one comment per project, updated on each push). The PR comment needs
pull-requests: write and GITHUB_TOKEN.
# .github/workflows/preview.yml
name: heartify preview
on:
pull_request:
permissions:
contents: read
pull-requests: write # for the preview comment
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with: { node-version: '22', cache: pnpm }
- run: pnpm install --frozen-lockfile
- name: Build site
run: pnpm build # produces ./dist
- name: Deploy preview to heartify
env:
HEARTIFY_TOKEN: ${{ secrets.HEARTIFY_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx @heartidentity/heartify deploy ./dist --project testToken
Create a deploy token in the project's admin page → CI tokens → Create
token (hrty_…, shown once). Store it as a GitHub Actions secret
HEARTIFY_TOKEN. The token is scoped to that one project.
