Codex skill for configuring SrcPush in bare React Native apps.
This skill is intended for OSS or reusable project work where the integration needs to be correct, generic, and safe to share. It covers native Android and iOS wiring, JavaScript runtime setup, deployment-key placeholders, release automation, and CI-friendly config injection.
- Adds or repairs
@srcpush/react-native-code-pushintegration in bare React Native projects. - Handles Android native changes such as Gradle wiring,
strings.xml, andMainApplication. - Handles iOS native changes such as
Podfile,AppDelegate, andInfo.plist. - Adds safe placeholders for deployment keys and other managed config.
- Produces release script patterns for Android and iOS.
- Supports CI or local config injection through
scripts/inject-srcpush-config.js.
Use this skill when Codex needs to:
- set up SrcPush in an existing bare React Native app
- migrate from AppCenter CodePush or another CodePush fork
- add release scripts or CI workflows for SrcPush deployments
- inject deployment config into tracked native files without committing secrets
.
├── SKILL.md
├── agents/
│ └── openai.yaml
├── references/
│ ├── native-integration.md
│ └── release-and-ci.md
└── scripts/
└── inject-srcpush-config.js
SKILL.md: main skill instructions, workflow, output shape, and guardrails.agents/openai.yaml: display metadata and the default prompt used to invoke the skill.references/native-integration.md: expected Android, iOS, and JS integration patterns.references/release-and-ci.md: release script templates, CI shape, and secret-handling guidance.scripts/inject-srcpush-config.js: helper to write real deployment values intostrings.xmlandInfo.plistfrom environment-driven inputs.
Typical invocation:
Use $srcpush-bare-rn-setup to configure SrcPush in this bare React Native app.
Expected workflow:
- Inspect the app structure and current React Native / CodePush setup.
- Add
@srcpush/react-native-code-pushas the runtime dependency. - Patch Android native integration.
- Patch iOS native integration.
- Add JS runtime sync behavior.
- Add generic release commands and CI-safe placeholders.
- Keep secrets in environment variables or CI, not in tracked files.
- Do not hardcode private deployment keys, access keys, signing keys, bundle IDs, or internal endpoints.
- Prefer placeholders such as
YOUR_IOS_DEPLOYMENT_KEYandYOUR_SRCPUSH_APP_NAME. - Preserve existing working logic if the app already uses AppCenter CodePush or a forked setup.
- Keep tracked output reusable across repositories instead of copying values from private projects.
The helper script updates Android and iOS tracked config files with environment-provided values.
Example:
node scripts/inject-srcpush-config.js \
--android-strings android/app/src/main/res/values/strings.xml \
--ios-plist ios/MyApp/Info.plist \
--deployment-key-android "$SRCPUSH_DEPLOYMENT_KEY_ANDROID" \
--deployment-key-ios "$SRCPUSH_DEPLOYMENT_KEY_IOS" \
--server-url "https://api.srcpush.com" \
--public-key-file ./keys/public.pemRequired arguments:
--android-strings--ios-plist--deployment-key-android--deployment-key-ios
Optional arguments:
--server-url--public-key--public-key-file
The skill prefers explicit scripts for each platform and environment, for example:
srcpush:android:stagingsrcpush:android:prodsrcpush:ios:stagingsrcpush:ios:prod
The corresponding CI flow should:
- install dependencies
- install the SrcPush CLI
- authenticate with an access key from secrets
- materialize signing keys only at runtime
- run release commands with the correct target binary version
- See
SKILL.mdfor the primary instructions. - See
references/native-integration.mdfor file-level integration details. - See
references/release-and-ci.mdfor release command and CI patterns.