This repository demonstrates a sample CI/CD pipeline setup for a Flutter application using GitHub Actions, Codemagic, and Shorebird. The pipeline is designed to automate the build, test, and deployment processes, ensuring consistency and efficiency in your Flutter app development.
This implementation is based on my own experiences as well as insights gained from various projects I have researched. The repository showcases best practices for version management, branch structure, and CI/CD integration.
You can read more about the full implementation and details in my upcoming article Medium article.
To maintain a well-organized and secure development process, this repository follows a structured branching strategy. With proper branch protection rules, PR processes, and version tagging, you can ensure both the speed and quality of your development pipeline.
- Master branch: Stable production releases
- Staging branch: Pre-production environment for testing
- Dev branch: Ongoing development work
Versioning follows a specific format to differentiate between releases and patches, ensuring clarity and consistency in the deployment process.
- GitHub Actions for Continuous Integration: Automate testing and linting processes to maintain code quality.
- Codemagic for Flutter Builds: Efficient build and release automation for both Android and iOS platforms.
- Shorebird for CodePush Integration: Seamlessly deploy hotfixes to your app without requiring users to download a full update from the app store.
- Branch Protection and Version Tagging: Enforce branch protection rules and version tags to ensure a secure and organized release process.