Description
Set up a comprehensive CI/CD pipeline for the ChaimRemit React Native mobile application to automate testing, building, and deployment processes for both iOS and Android platforms.
High - Essential for development workflow and production deployment
Acceptance Criteria
GitHub Actions Workflow
Testing Pipeline
Build Pipeline
Deployment Pipeline
Technical Requirements
Environment Setup
```yaml
Required GitHub Secrets
ANDROID_KEYSTORE_BASE64
ANDROID_KEYSTORE_PASSWORD
ANDROID_KEY_ALIAS
ANDROID_KEY_PASSWORD
IOS_CERTIFICATE_BASE64
IOS_PROVISIONING_PROFILE_BASE64
IOS_CERTIFICATE_PASSWORD
APP_STORE_CONNECT_API_KEY
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON
SLACK_WEBHOOK_URL (optional)
```
Build Configuration
- Node.js version: 18.x
- React Native CLI version: Latest stable
- Xcode version: 14.x (for iOS builds)
- Android SDK: API level 33
- Java version: 11
Workflow Triggers
- Pull requests to
main and develop branches
- Push to
main branch (for deployment)
- Manual workflow dispatch for emergency builds
- Scheduled nightly builds for development branch
Implementation Details
CI Workflow Structure
```yaml
name: Mobile CI
on:
pull_request:
branches: [main, develop]
paths: ['mobile/']
push:
branches: [main, develop]
paths: ['mobile/']
jobs:
lint-and-test:
runs-on: ubuntu-latest
steps:
- Checkout code
- Setup Node.js
- Cache dependencies
- Install dependencies
- Run linting
- Run unit tests
- Upload coverage
build-android:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- Build Android APK/AAB
- Sign Android build
- Upload artifacts
build-ios:
runs-on: macos-latest
needs: lint-and-test
steps:
- Build iOS IPA
- Sign iOS build
- Upload artifacts
e2e-tests:
runs-on: macos-latest
needs: [build-android, build-ios]
steps:
- Run Detox tests on iOS simulator
- Run Detox tests on Android emulator
```
Description
Set up a comprehensive CI/CD pipeline for the ChaimRemit React Native mobile application to automate testing, building, and deployment processes for both iOS and Android platforms.
High - Essential for development workflow and production deployment
Acceptance Criteria
GitHub Actions Workflow
.github/workflows/mobile-ci.ymlfor continuous integration.github/workflows/mobile-cd.ymlfor continuous deploymentTesting Pipeline
Build Pipeline
Deployment Pipeline
Technical Requirements
Environment Setup
```yaml
Required GitHub Secrets
ANDROID_KEYSTORE_BASE64
ANDROID_KEYSTORE_PASSWORD
ANDROID_KEY_ALIAS
ANDROID_KEY_PASSWORD
IOS_CERTIFICATE_BASE64
IOS_PROVISIONING_PROFILE_BASE64
IOS_CERTIFICATE_PASSWORD
APP_STORE_CONNECT_API_KEY
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON
SLACK_WEBHOOK_URL (optional)
```
Build Configuration
Workflow Triggers
mainanddevelopbranchesmainbranch (for deployment)Implementation Details
CI Workflow Structure
```yaml
name: Mobile CI
on:
pull_request:
branches: [main, develop]
paths: ['mobile/']
push:
branches: [main, develop]
paths: ['mobile/']
jobs:
lint-and-test:
runs-on: ubuntu-latest
steps:
- Checkout code
- Setup Node.js
- Cache dependencies
- Install dependencies
- Run linting
- Run unit tests
- Upload coverage
build-android:
runs-on: ubuntu-latest
needs: lint-and-test
steps:
- Build Android APK/AAB
- Sign Android build
- Upload artifacts
build-ios:
runs-on: macos-latest
needs: lint-and-test
steps:
- Build iOS IPA
- Sign iOS build
- Upload artifacts
e2e-tests:
runs-on: macos-latest
needs: [build-android, build-ios]
steps:
- Run Detox tests on iOS simulator
- Run Detox tests on Android emulator
```