The pipeline for building & publishing your Flutter app for different target platforms.
Features
General
- Specify platforms, build commands, and your preferences in
pubspec.yaml - Logs the output of all build & publish commands for future reviews
- Define multiple workflows for different build, environment, etc.
iOS & macOS
- Publishing the iOS app to App Store
- Optional clearing of XCode's derived data for consistent builds
Android
- Publishing the Android app to the Play Store
Web
- Adds the version query paramter to build files post-build to solve the caching problem of Flutter web (e.g.
flutter_bootstrap.js?v=0.12.1)
Usage
Once the configuration is added to your project, you can run the desired command via:
##### BUILD #####
# To build for all given platforms in the default workflow
dart run build_pipe:build
# To build for all given platforms in a named workflow
dart run build_pipe:build --workflow=your_workflow_name
# To use one (or more) of the platforms defined in a workflow (comma-separated)
dart run build_pipe:build --override-target-platforms=android,ios,web
# The build command will funnel all other args passed (e.g., --dart-define) to the build
# commands on all platforms
# This allows github actions etc to pass environment vars down to the build cmd without editing the yaml file
dart run build_pipe:build --dart-define=ENVIRONMENT=prod
##### PUBLISH #####
# To publish the built app to the given platforms in the default workflow
dart run build_pipe:publish
# To publsih the built app for all given platforms in a named workflow
dart run build_pipe:publish --workflow=your_workflow_name
# To use one (or more) of the platforms defined in a workflow (comma-separated)
dart run build_pipe:publish --override-target-platforms=android
Read the topics below to setup and configure your project. The configuration is quite simple, and you just need to do it once.
Topics
Install & Setup
Platform Specific config and explanations
Misc.
Migration
Libraries
- build_pipe
- Support for doing something awesome.
- config/android_specific_config
- config/apple_specific_config
- config/config
- config/platform_specific_config
- config/web_specific_config
- dx/cli_help
- utils/builder.utils
- utils/console.utils
- utils/log.utils
- utils/process.utils
- utils/validation.utils
- utils/web.utils
- utils/xcode.utils