Skip to content

One-step Flutter CI/CD: automatically configure Flutter and Fastlane, build your apps, and deploy to Google Play and App Store with zero manual setup.

License

Notifications You must be signed in to change notification settings

MTtankkeo/flutter-fastlane-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

This Flutter package provides a one-step CI/CD solution for Flutter apps. For a project without any Fastlane setup, it automatically configures all necessary Fastlane settings, builds your Android and iOS apps, and deploys them to Google Play and the App Store with zero manual setup. Developers only need to provide six essential configuration values for iOS deployment in GitHub Secrets.

Tip

If you are new to Fastlane or CI/CD, use GitHub Wiki - Basic-Settings to learn the basic concepts and usage, and follow along to apply them to your project.

Tested And Supported Runners

🟢 Stable 🟡 Testing...

🍎 OS Type ⚡ Status 🧩 Support
macos-14 🟡 Android, iOS
macos-15 (latest) 🟢 Android, iOS
macos-26 🟡 Android, iOS
ubuntu-latest 🟢 Android

Useage

Before using this action, the GitHub Actions runner must have the following setup:

Example

If you want to see an example or reference a template, check the templates/basic_deploy.yml or templates/advanced_depoy.yml files.

- name: Deploy Android and iOS
  uses: MTtankkeo/[email protected]
  with:
    version-name: ${{ github.event.inputs.VERSION_NAME }}
    build-number: ${{ github.event.inputs.BUILD_NUMBER }}
    release-note: ${{ github.event.inputs.RELEASE_NOTE }}
    match-repository: {...}
    match-password: ${{ secrets.MATCH_PASSWORD }}
    appstore-connect-issuer-id: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
    appstore-connect-key-id: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
    appstore-connect-key: ${{ secrets.APP_STORE_CONNECT_KEY }}
    appstore-team-id: ${{ secrets.APP_STORE_TEAM_ID }}

How to set additional Flutter build options?

Sometimes you may need to provide extra build options to Flutter, like choosing a flavor or specifying a different main entrypoint.

You can do this easily with the build-extra input, which passes any additional arguments directly to the Flutter build command.

# Build a production flavor with a custom entrypoint.
build-extra: --flavor prod --target "lib/main_prod.dart"

How to build only one platform?

You can control which platforms to build using the platform input:

# Build only Android
platform: android

# Build only iOS
platform: ios

# Build both platforms
platform: all

GitHub Actions Inputs

These are the input parameters for the GitHub Actions workflow.

🔹Required

Name Description Type
version-name🔹 Version name for the build String
build-number🔹 Build number for the build Number
release-note Release note for the build String?
release-note-language Language code for the release note (e.g., 'en-US', 'ko-KR') String?
app-id Common app identifier for both platforms (optional if platform-specific IDs are provided) String?
android-app-id Application ID for Android String?
ios-app-id Application bundle identifier for iOS String?
match-repository Repository for Fastlane match certificates String?
match-password Password for Fastlane match String?
match-keychain-password Optional keychain password for Fastlane match String?
appstore-connect-issuer-id Issuer ID for App Store Connect API key String?
appstore-connect-key-id Key ID for App Store Connect API key String?
appstore-connect-key API key content for App Store Connect String?
appstore-team-id Team ID for the Apple Developer account String?
service-account-path File path to store the Google service account JSON String?
service-account-json Google service account JSON content for Play Store (Base64-encoded) Base64?
skip-wait-processing Skip waiting for build processing after upload (true/false). And corresponds to Fastlane skip_waiting_for_build_processing option String?
flutter-dir Directory of the Flutter project String?
android-dir Directory of the Android project String?
ios-dir Directory of the iOS project String?
build-extra Additional Flutter build options or flags. Can include multiple tokens like '--flavor prod "lib/main_prod.dart"'. String?
platform Specifies which platform to build: android, ios, or all. iOS builds require a macOS runner. String?

About

One-step Flutter CI/CD: automatically configure Flutter and Fastlane, build your apps, and deploy to Google Play and App Store with zero manual setup.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published