|
| 1 | +# Native Workflow Runbook |
| 2 | + |
| 3 | +Status on May 6, 2026: native iOS and Android release builds passed locally, but the GitHub `Native Release Checks` workflow has not produced release-candidate evidence yet. |
| 4 | + |
| 5 | +## Current Blocker |
| 6 | + |
| 7 | +GitHub Actions only exposes manually dispatched workflows after the workflow file exists on the repository default branch. The workflow file currently exists on `next`, while the repository default branch is `master`, so `workflow_dispatch` is not available yet for `.github/workflows/native-release.yml`. |
| 8 | + |
| 9 | +Do not mark the native workflow evidence complete until a green workflow run exists on the release-candidate commit and both platform artifacts are archived. |
| 10 | + |
| 11 | +## Required Evidence |
| 12 | + |
| 13 | +The release gate requires: |
| 14 | + |
| 15 | +- green `Native Release Checks` workflow run on the release-candidate commit |
| 16 | +- iOS release-build log artifact |
| 17 | +- Android release-build log artifact |
| 18 | +- Android release APK artifact when generated |
| 19 | +- recorded workflow URL, commit SHA, and artifact links in [native-release-workflow.json](evidence/native-release-workflow.json) |
| 20 | + |
| 21 | +Local release-build passes are useful smoke evidence, but they do not replace this workflow evidence for RC/stable. |
| 22 | + |
| 23 | +## Make The Workflow Dispatchable |
| 24 | + |
| 25 | +Choose one of these owner-approved paths: |
| 26 | + |
| 27 | +- Merge the workflow file into the default branch as part of the release branch process. |
| 28 | +- Temporarily add the workflow file to the default branch, then dispatch it against `next` or the release-candidate branch. |
| 29 | +- Change the repository default branch after the release branch is ready, if that matches the repository strategy. |
| 30 | + |
| 31 | +After the workflow is visible from the default branch, verify it appears in GitHub Actions: |
| 32 | + |
| 33 | +```sh |
| 34 | +gh workflow list |
| 35 | +``` |
| 36 | + |
| 37 | +## Run The Workflow |
| 38 | + |
| 39 | +Run the native release workflow on the release-candidate branch or commit: |
| 40 | + |
| 41 | +```sh |
| 42 | +gh workflow run native-release.yml --ref next |
| 43 | +gh run watch <run-id> --exit-status |
| 44 | +``` |
| 45 | + |
| 46 | +If the workflow fails, use the uploaded logs first. The jobs upload artifacts even on failure where possible. |
| 47 | + |
| 48 | +## Record Passing Evidence |
| 49 | + |
| 50 | +After the workflow passes, collect the artifact links from the workflow run and record them: |
| 51 | + |
| 52 | +```sh |
| 53 | +npm run release:native-workflow:record -- \ |
| 54 | + --run-url https://github.com/indiespirit/react-native-chart-kit/actions/runs/<run-id> \ |
| 55 | + --commit <release-candidate-sha> \ |
| 56 | + --ios-artifact https://github.com/indiespirit/react-native-chart-kit/actions/runs/<run-id>/artifacts/<ios-artifact-id> \ |
| 57 | + --android-artifact https://github.com/indiespirit/react-native-chart-kit/actions/runs/<run-id>/artifacts/<android-artifact-id> |
| 58 | +``` |
| 59 | + |
| 60 | +Then verify the gate status: |
| 61 | + |
| 62 | +```sh |
| 63 | +npm run release:gate:report |
| 64 | +``` |
| 65 | + |
| 66 | +The `blocker:native-workflow-evidence` blocker should disappear only after the workflow manifest is complete. |
| 67 | + |
| 68 | +## Related Local Checks |
| 69 | + |
| 70 | +Run these before relying on the workflow: |
| 71 | + |
| 72 | +```sh |
| 73 | +npm run native:release:dry-run |
| 74 | +npm run native:release:android |
| 75 | +npm run native:release:ios |
| 76 | +``` |
| 77 | + |
| 78 | +These commands are documented in [Native release checks](native-release-checks.md). Local results are tracked in [Native release results](native-release-results.md). |
0 commit comments