Skip to content
Spaccesi edited this page Mar 4, 2026 · 4 revisions

Flutter Actions Suite is a collection of modular GitHub Actions for automating the complete CI/CD pipeline of Flutter applications — from code generation and testing to building and deploying across all supported platforms.


Features

  • Modular by design — use the full pipeline with a single action, or compose individual actions to fit your workflow
  • Pre-build hooks — automatic build_runner and gen-l10n code generation
  • Quality gates — static analysis, formatting, dependency license validation, and unit/widget tests with optional coverage reporting
  • Documentation — generate and publish dartdoc documentation
  • Multi-platform builds — iOS, Android, Web, macOS, Windows, and Linux with automated signing
  • Multi-destination publishing — App Store Connect, Play Store, Firebase App Distribution, Firebase Hosting, GitHub Pages, Microsoft Store, and Snap Store
  • Monorepo support — via Flutter workspaces

Actions Reference

Main Action

Action Path Description
Flutter Actions Suite Spaccesi/flutter-actions-suite Full pipeline: prepare → check → build → publish

Modular Actions

Action Path Description
Prepare /prepare Flutter setup, pub get, and optional code generation
Build Runner /prepare/build_runner Runs build_runner for code generation
Gen L10n /prepare/gen-l10n Generates localization files via gen-l10n
Check /check Composite: analysis, license validation, and tests
Analyze /check/analyze Static analysis and formatting validation
Test /check/test Unit and widget tests with optional coverage reporting
License /check/license Dependency license compatibility check
Docs /docs Generates dartdoc documentation
Build /build/{platform} Platform-specific build with automated signing
Publish /publish/{platform} Deploys artifacts to the configured destination

Recommended CI Architecture

The recommended pattern avoids redundant work by splitting the pipeline into two phases:

Phase 1 — Quality gate (runs once on Ubuntu): Prepare the environment, generate code, and run all checks. All platform builds are gated behind this step.

Phase 2 — Parallel builds (runs concurrently): Each platform builds in parallel on its required runner once the quality gate passes.

┌─────────────────────────────────┐
│   Phase 1 · ubuntu-latest       │
│   Prepare → Check → Test        │
└────────────────┬────────────────┘
                 │ on success
    ┌────────────┼────────────┐
    ▼            ▼            ▼
┌───────┐  ┌─────────┐  ┌─────────┐
│  iOS  │  │ Android │  │   Web   │  ...
│ macOS │  │ ubuntu  │  │ ubuntu  │
└───────┘  └─────────┘  └─────────┘

Runner requirements: macOS for iOS/macOS builds · Windows for Windows builds · Ubuntu for Android, Web, and Linux builds.


Quick Start

Full pipeline (single action)

- name: Build and deploy Flutter app
  uses: Spaccesi/flutter-actions-suite@main
  with:
    platform: android
    publish-to-play-store: true
    play-store-service-account-base64: ${{ secrets.PLAY_STORE_CREDENTIALS }}

Modular usage

- name: Prepare
  uses: Spaccesi/flutter-actions-suite/prepare@main

- name: Check
  uses: Spaccesi/flutter-actions-suite/check@main

- name: Build iOS
  uses: Spaccesi/flutter-actions-suite/build/ios@main
  with:
    certificate-base64: ${{ secrets.IOS_CERTIFICATE }}
    provisioning-profile-base64: ${{ secrets.IOS_PROVISIONING_PROFILE }}

Wiki Pages

Build & Signing

Page Description
Android Keystore and Signing Keys Generate an Android upload keystore and store its credentials as repository secrets
iOS Signing Certificates and Provisioning Profiles Create an iOS distribution certificate and provisioning profile and store them as repository secrets
macOS Signing Certificates and Provisioning Profiles Create macOS distribution and installer certificates and store them as repository secrets

Publishing

Page Description
Google Play Service Account Create a Google Play service account for automated Android publishing
App Store Connect API Key Generate an App Store Connect API key for automated iOS and macOS publishing
Google Application Credentials Generate a Google service account key and store it as a repository secret for Firebase deployments
Microsoft Store Credentials Set up Microsoft Partner Center API access for automated Windows publishing
Snap Store Token Generate a Snapcraft credentials token for automated Linux publishing

Clone this wiki locally