GitHub Action & CI
Store HEALKITE_TOKEN (an access key from API & MCP, Developer role) and HEALKITE_SIGNING_KEY (your
PEM) as repository secrets.
Release on merge
yaml
on: { push: { branches: [main] } }
jobs:
ota:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22 }
- run: npm ci
- uses: saif-09/healkite-action@v1
with:
api-url: https://api.healkite.com
token: ${{ secrets.HEALKITE_TOKEN }}
signing-key: ${{ secrets.HEALKITE_SIGNING_KEY }}
channel: production-xxxxxxxx
platform: android
runtime-version: "1.0.0"
guarded: "true"
max-growth: "10"Bundle size check on pull requests
yaml
- uses: saif-09/healkite-action@v1
with:
mode: size-check
api-url: https://api.healkite.com
token: ${{ secrets.HEALKITE_TOKEN }} # Viewer role is enough
channel: production-xxxxxxxx
platform: android
runtime-version: "1.0.0"
max-growth: "10"PR previews
yaml
on:
pull_request: { types: [opened, synchronize, reopened, closed] }
permissions: { pull-requests: write, contents: read }
jobs:
preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 22 }
- run: npm ci
if: github.event.action != 'closed'
- uses: saif-09/healkite-action@v1
with:
mode: ${{ github.event.action == 'closed' && 'preview-close' || 'preview' }}
api-url: https://api.healkite.com
token: ${{ secrets.HEALKITE_TOKEN }}
signing-key: ${{ secrets.HEALKITE_SIGNING_KEY }}
channel: production-xxxxxxxx
platform: android
runtime-version: "1.0.0"Inputs
| Input | |
|---|---|
mode | release (default), size-check, preview, preview-close |
api-url, token, channel, platform, runtime-version | Required |
signing-key | PEM of your signing key (secret) |
guarded | "true" for a guarded rollout |
description | Release notes |
starts-at, ends-at | Schedule a release or campaign |
max-size, max-growth | Size budgets (2MB, 10) |
preview-name | Default pr-<number> |
project | Project directory (default .) |
Other CI systems
The CLI has no dependencies beyond Node:
sh
export HEALKITE_API_URL=https://api.healkite.com HEALKITE_TOKEN=… # env wins over ~/.healkite/config.json
HEALKITE_SIGNING_KEY="$SIGNING_PEM" npx healkite release -p ios -c "$CHANNEL" -r 1.0.0 --guarded