Skip to content

Commit 9bbf524

Browse files
author
iexitdev
committed
docs(release): add native workflow runbook
1 parent cbf2b78 commit 9bbf524

4 files changed

Lines changed: 83 additions & 2 deletions

File tree

‎docs/release/beta-checklist.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ Use `npm run release:publish:status` to compare the Developer Preview package ma
5858

5959
Use [npm-publish-runbook.md](npm-publish-runbook.md) when rerunning the Developer Preview publish workflow after fixing the `NPM_TOKEN` secret. It documents the required token properties, idempotent rerun command, and post-publish registry checks.
6060

61+
Use [native-workflow-runbook.md](native-workflow-runbook.md) when making the native release workflow visible on the default branch, dispatching it for the release-candidate commit, and recording iOS/Android workflow artifacts.
62+
6163
Use `npm run release:owner:record -- --list` to inspect H4/H5/H6 owner gates. Owner approval should be recorded through the same command with `--gate`, `--approved-by`, and one `--decision` value for each pending decision.
6264

6365
## Manual Review
@@ -83,6 +85,7 @@ Use `npm run release:owner:record -- --list` to inspect H4/H5/H6 owner gates. Ow
8385
- [Troubleshooting guide](../troubleshooting.md)
8486
- [Known issues](known-issues.md)
8587
- [NPM publish runbook](npm-publish-runbook.md)
88+
- [Native workflow runbook](native-workflow-runbook.md)
8689
- [H4 Pro scope decision packet](h4-pro-scope.md)
8790
- [H4 owner decision memo](h4-owner-decision-memo.md)
8891
- [H5 Developer Preview evidence](h5-beta-gate-evidence.md)

‎docs/release/known-issues.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ These are allowed only as explicit Developer Preview caveats. Anything in this f
66

77
Android and iOS release-build checks are configured in `.github/workflows/native-release.yml` and can be run locally with `npm run native:release:android` and `npm run native:release:ios`. The Expo showcase also verifies web screenshots and can run on device through Expo Go or Expo dev targets.
88

9-
The iOS and Android release builds passed locally on May 5, 2026. Android used OpenJDK 17 plus the Homebrew Android command-line tools SDK (`/opt/homebrew/share/android-commandlinetools`) and completed `assembleRelease`. The release script now fails before prebuild when either Java or the Android SDK is missing. The remaining gap is CI evidence: production beta/RC should not count native release-build coverage as complete until the native workflow has a green run on the release candidate commit. A manual dispatch attempt on May 6, 2026 failed because `.github/workflows/native-release.yml` exists on `next` but not on the default `master` branch, so GitHub does not expose it as a dispatchable workflow yet. The structured status lives in [native-release-workflow.json](evidence/native-release-workflow.json).
9+
The iOS and Android release builds passed locally on May 5, 2026. Android used OpenJDK 17 plus the Homebrew Android command-line tools SDK (`/opt/homebrew/share/android-commandlinetools`) and completed `assembleRelease`. The release script now fails before prebuild when either Java or the Android SDK is missing. The remaining gap is CI evidence: production beta/RC should not count native release-build coverage as complete until the native workflow has a green run on the release candidate commit. A manual dispatch attempt on May 6, 2026 failed because `.github/workflows/native-release.yml` exists on `next` but not on the default `master` branch, so GitHub does not expose it as a dispatchable workflow yet. The structured status lives in [native-release-workflow.json](evidence/native-release-workflow.json), and the exact unblock path is documented in [native-workflow-runbook.md](native-workflow-runbook.md).
1010

1111
Impact: Developer Preview can be used for preview and API feedback, but production users should wait for green native workflow verification before treating v2 as stable.
1212

‎docs/release/native-release-results.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Non-blocking warnings observed:
6161
- Gradle emitted Expo/React Native deprecation warnings from generated native dependencies.
6262
- Gradle warned that the daemon would stop after running out of JVM metaspace; the release build still completed successfully.
6363

64-
The GitHub `Native Release Checks` workflow configures Java and runs on an Android-capable hosted runner, so the next evidence step is a green workflow run.
64+
The GitHub `Native Release Checks` workflow configures Java and runs on an Android-capable hosted runner, so the next evidence step is a green workflow run. The default-branch dispatch and evidence-recording sequence is documented in [Native workflow runbook](native-workflow-runbook.md).
6565

6666
When the workflow runs, download the `native-release-android` and `native-release-ios` artifacts. The archived logs are expected at:
6767

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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

Comments
 (0)