Automate with CI
Publish an update on every merge.
GitHub Actions
yaml
# .github/workflows/ota.yml
name: OTA update
on:
push:
branches: [main]
jobs:
publish:
runs-on: ubuntu-latest
strategy:
matrix: { platform: [android, ios] }
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20, cache: npm }
- run: npm ci
- run: >
npx fireota publish --app ${{ vars.FIREOTA_APP_ID }} --platform ${{ matrix.platform }}
--version 1.3.${{ github.run_number }} --runtime 1.3.0 --channel beta --rollout 100
env:
FIREOTA_URL: ${{ vars.FIREOTA_URL }}
FIREOTA_API_KEY: ${{ secrets.FIREOTA_API_KEY }}Safe retries
The CLI sends an idempotency key derived from the release inputs, so a retried job never creates a duplicate release.