agentsclimarketplace

Ci cd

Skill launch52-ai/flutter-template/.claude/skills/ci-cd

Template for Flutter mobile applications.

Install
npx -y skills add launch52-ai/flutter-template --skill ci-cd

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Set up CI/CD pipelines with GitHub Actions and Fastlane for Flutter apps. Automates testing, building, and deployment to Firebase App Distribution, TestFlight, and Play Store. Use when setting up automated workflows or preparing for release.

SKILL.md

6.8 KB, as published. Nobody here has run it

CI/CD - Automated Build & Deploy

Set up robust CI/CD pipelines for Flutter apps using GitHub Actions and Fastlane. Automates the entire flow from code push to app store deployment.

When to Use This Skill

  • Setting up CI/CD for a new Flutter project
  • Adding automated testing to pull requests
  • Configuring deployment to Firebase App Distribution
  • Setting up TestFlight (iOS) or Play Store (Android) releases
  • Implementing semantic versioning automation
  • Optimizing build times with caching

Architecture Overview

GitHub Actions Pipeline: CI (on PR: analyze, test) → Build (on merge: APK/IPA) → Deploy (on tag: stores)

Fastlane: iOS (match → build → TestFlight) | Android (gradle → Play Store)

Quick Reference

Workflow Types

WorkflowTriggerPurpose
ci.ymlPR, pushLint, test, analyze
build-android.ymlPush to mainBuild APK/AAB artifacts
build-ios.ymlPush to mainBuild iOS (no codesign)
deploy-firebase-android.ymlBeta/alpha tagsFirebase App Distribution (Android)
deploy-firebase-ios.ymlBeta/alpha tagsFirebase App Distribution (iOS)
deploy-testflight.ymlRelease tagsTestFlight
deploy-playstore.ymlRelease tagsPlay Store
release.ymlManualBump version, create tag

Quick Start

# Interactive setup - creates config file, then generates all CI/CD files
dart run .claude/skills/ci-cd/scripts/setup.dart

This will:

  1. Create ci-cd-config.yaml with all options
  2. Open it for you to fill in your values
  3. Run again to generate all workflows and Fastlane files

Other Commands

dart run .claude/skills/ci-cd/scripts/check.dart       # Validate setup
cd ios && bundle exec fastlane beta                    # Fastlane iOS
cd android && bundle exec fastlane beta                # Fastlane Android
./scripts/bump_version.sh patch                        # Bump version

Workflow

1. Prerequisites Check

Before setting up CI/CD, ensure project builds and tests pass:

flutter build apk --debug && flutter build ios --debug --no-codesign
flutter test && flutter analyze

2. Create Workflow Files

mkdir -p .github/workflows

Create workflows in order:

  1. ci.yml - Basic PR checks (required for all projects)
  2. build.yml - Build artifacts (if deploying)
  3. deploy-firebase.yml - Firebase App Distribution (for testers)
  4. deploy-ios.yml / deploy-android.yml - Store deployment

See workflows-guide.md for templates.

3. Configure Secrets

Add to GitHub repository Settings → Secrets and variables → Actions:

SecretPurposeRequired For
FIREBASE_SERVICE_ACCOUNTFirebase deploymentFirebase App Dist
FIREBASE_APP_ID_ANDROIDAndroid App IDFirebase App Dist
FIREBASE_APP_ID_IOSiOS App IDFirebase App Dist
MATCH_PASSWORDFastlane match encryptioniOS signing
MATCH_GIT_BASIC_AUTHORIZATIONMatch repo accessiOS signing
APP_STORE_CONNECT_API_KEYApp Store ConnectTestFlight
APP_STORE_CONNECT_ISSUER_IDAPI Key IssuerTestFlight
APP_STORE_CONNECT_KEY_IDAPI Key IDTestFlight
GOOGLE_SERVICE_ACCOUNT_KEYPlay Store accessPlay Store

4. Set Up Fastlane (Optional)

gem install fastlane && cd ios && fastlane init  # iOS
cd android && fastlane init                       # Android

See fastlane-guide.md and versioning-guide.md for configuration.

Checklist

GitHub Actions:

  • .github/workflows/ci.yml exists
  • Workflow uses subosito/flutter-action with caching
  • Secrets configured in repository settings
  • Branch protection requires CI to pass

Fastlane (if deploying):

  • ios/fastlane/Fastfile configured
  • android/fastlane/Fastfile configured
  • Match set up for iOS signing
  • Service accounts configured

Versioning:

  • Version bump script exists
  • Changelog pattern documented
  • Tag triggers deployment

Caching Strategy

Proper caching reduces build times by 30-50%:

What to CacheKey PatternRestore Key
Flutter SDKflutter-${{ runner.os }}-${{ inputs.flutter-version }}flutter-${{ runner.os }}-
Pub cachepub-${{ runner.os }}-${{ hashFiles('**/pubspec.lock') }}pub-${{ runner.os }}-
build_runnerbuild-runner-${{ hashFiles('**/pubspec.lock') }}build-runner-
Gradlegradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}gradle-
CocoaPodspods-${{ hashFiles('**/Podfile.lock') }}pods-

Security Best Practices

  1. Never commit secrets - Use GitHub Secrets or environment variables
  2. Restrict workflow permissions - Use permissions: block
  3. Pin action versions - Use SHA or exact versions, not @main
  4. Use OIDC - For cloud providers (Firebase, GCP) when possible
  5. Limit deployment branches - Only deploy from protected branches

Templates

Ready-to-use files in templates/: bump_version scripts, workflows/*.yml (ci, build, deploy), fastlane/{ios,android}/ (Fastfile, Appfile, Gemfile).

Note: Template Fastfiles include advanced lanes. The setup script creates minimal files.

# Copy templates manually (or use setup.dart)
mkdir -p .github/workflows ios/fastlane android/fastlane
cp .claude/skills/ci-cd/templates/workflows/*.yml .github/workflows/
cp .claude/skills/ci-cd/templates/fastlane/ios/* ios/fastlane/

Guides

GuideUse For
workflows-guide.mdGitHub Actions concepts & customization
fastlane-guide.mdiOS/Android deployment setup
versioning-guide.mdSemantic versioning patterns
debug-symbols-guide.mddSYM/mapping upload for crash reporting

Related Skills

  • /release - Manual release preparation (signing, icons, store setup) - do this first
  • /analytics - Crash reporting setup, provides upload scripts
  • /testing - Ensure tests pass before deployment

Sources

Based on: Flutter CI/CD with GitHub Actions, Fastlane Flutter Docs, Flutter Official CD Guide

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.