Skip to content
Back to skills

Mobile Ci Cd

ASecurity

Automate mobile app build, test, and deployment pipelines for iOS and Android using Fastlane, EAS Build, or GitHub Actions.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 6, 2026
ai-agentsgorubybashreactnodegitci/cd

Works with

  • cursor
  • cli

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add AtulPurohit/Antigravity-Awesome-Skills --skill mobile-ci-cd --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Mobile Ci Cd?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Mobile Ci Cd
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atulpurohit-mobile-ci-cd/badge)](https://www.skillsdirectory.com/skills/atulpurohit-mobile-ci-cd)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mobile-ci-cd
description: "Automate mobile app build, test, and deployment pipelines for iOS and Android using Fastlane, EAS Build, or GitHub Actions."
category: mobile
tags: [ci-cd, mobile, fastlane, eas-build, github-actions, deployment]
complexity: advanced
risk: low
compatibility: [claude-code, antigravity, gemini-cli, cursor, copilot, codex-cli, autohand, kiro]
source: antigravity-official
version: "1.0.0"
date_added: "2026-07-10"
last_updated: "2026-07-10"
---

# Mobile CI/CD Engineer

## Purpose
Establish automated CI/CD pipelines for mobile applications that build, test, and deploy to stores without manual intervention.

## Pipeline Architecture

### Option A: EAS Build + Submit (React Native/Expo)
```json
// eas.json
{
  "cli": { "version": ">= 10.0.0" },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": { "simulator": true }
    },
    "preview": {
      "distribution": "internal",
      "ios": { "resourceClass": "m-medium" },
      "android": { "buildType": "apk" }
    },
    "production": {
      "ios": { "resourceClass": "m-medium" },
      "android": { "buildType": "aab" }
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "apple@example.com",
        "ascAppId": "1234567890"
      },
      "android": {
        "serviceAccountKeyPath": "./play-service-account.json",
        "track": "internal"
      }
    }
  }
}
```

```yaml
# .github/workflows/mobile-ci.yml
name: Mobile CI/CD
on:
  push:
    branches: [main]
    tags: ['v*']

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm test -- --ci --coverage

  build-and-deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      
      - name: Setup EAS
        uses: expo/expo-github-action@v8
        with:
          eas-version: latest
          token: ${{ secrets.EXPO_TOKEN }}
      
      - name: Build for all platforms
        run: eas build --platform all --profile production --non-interactive
      
      - name: Submit to stores
        if: startsWith(github.ref, 'refs/tags/v')
        run: eas submit --platform all --profile production --non-interactive
```

### Option B: Fastlane (Native iOS/Android)
```ruby
# Fastfile
before_all do |lane, options|
  ensure_git_status_clean
end

platform :ios do
  lane :test do
    run_tests(scheme: "MyApp", devices: ["iPhone 15 Pro"])
  end

  lane :beta do |options|
    increment_build_number
    build_app(scheme: "MyApp", export_method: "app-store")
    upload_to_testflight(
      skip_waiting_for_build_processing: true,
      changelog: options[:changelog] || git_commit_message
    )
    slack(message: "New iOS beta build uploaded to TestFlight!")
  end

  lane :release do
    deliver(submit_for_review: true, automatic_release: false)
  end
end

platform :android do
  lane :beta do
    gradle(task: "bundle", build_type: "Release")
    upload_to_play_store(track: "internal")
  end
end
```

### Version Management
```bash
# Automated version bumping
npx standard-version --release-as minor    # 1.0.0 → 1.1.0
npx standard-version --release-as patch    # 1.0.0 → 1.0.1

# For React Native: sync version across platforms
# package.json version → android versionName → iOS CFBundleShortVersionString
```

## Outputs
1. EAS Build / Fastlane configuration
2. GitHub Actions workflow
3. Version management strategy
4. Environment configuration for dev/staging/prod
5. Store submission automation
6. Slack/notification integration

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…