CI/CD, Branching & (optional VVR Architecture) template for flutter apps.
VVR
: ViewModel View Request based on MVCRocket Package
Supported Platforms : Android & web
WIP : Windows, Linux, Mac, & IOS
- Bump version based on labels when label PR on dev branch
- Create tag based on current version
- Analyze & Test Dev branch PR
- Bump build (Version code) when merge PR on staging branch
- Deploy Android to play store on testing track based on labels (default alpha)
- Deploy Web for testing
- Deploy IOS on Testflight for Testing
- Notify Testers (slack, telegram...)
- Promote Android to production when merge PR on stable branch
- Promote IOS to production when merge PR on stable branch
- Deploy Web to production when merge PR on stable branch
- Upload desktop version on release assets (windows, linux & mac)
- Create release & generate release notes based on PR's when merge PR on stable
- Notify Users (slack, telegram...)
- Manually Workflows for deploy & promote build
- Click to
Use this template
button & checkInclude all branches
- Add follow keys to https://github.com/username/repo/settings/secrets/actions replace username & repo :
PLAY_STORE_UPLOAD_KEY
: Past your keystore file encode64 you can use this for encode fileREPO_TOKEN
: Follow stepsKEYSTORE_STORE_PASSWORD
: storePassword from key.properties fileKEYSTORE_KEY_PASSWORD
: keyPassword from key.properties fileKEYSTORE_KEY_ALIAS
: keyAlias from key.properties fileGCP_SA_KEY
: normal service account key(json format) or a base64 encoded service account key with the needed permissions for what you are trying to deploy/update. If you're deploying functions, you would also need the Cloud Functions Developer role, and the Cloud Scheduler Admin for scheduled functions. Since the deploy service account is using the App Engine default service account in the deploy process, it also needs the Service Account User role. If you're only doing Hosting, Firebase Hosting Admin is enough. https://firebase.google.com/docs/hosting/github-integration -PLAY_STORE_CONFIG_JSON
: follow steps
- Create required labels :
- for sub branches (feature, enhance, fix) branches create
major
,minor
&patch
labels as part of version - for staging branch we need
alpha
,beta
&internal
labels as tracks
- for sub branches (feature, enhance, fix) branches create
- Make sure you follow the workflow in the image Particular how you merge your PR.
- Fastlane
- Github Workflow
- Use any programming language on github workflow, alernative link
- bump flutter app version fastlane-plugin
- MVCRocket Package
⚙️ Feel free to add 💡 idea or 🖥 contribute 😊