Giter VIP home page Giter VIP logo

flutter_ci_cd's Introduction

CI Dev Bump app version based on PR labels Deploy Android & Web Promote Google Play build from track to another Deploy web & android for testing Deploy web & Promote Android to production

Flutter CI CD & Branching Template

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

REPO WORKFLOW

alt text

TODO

  • 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

HOW TO USE

  1. Click to Use this template button & check Include all branches
  2. 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 file
    • REPO_TOKEN : Follow steps
    • KEYSTORE_STORE_PASSWORD : storePassword from key.properties file
    • KEYSTORE_KEY_PASSWORD : keyPassword from key.properties file
    • KEYSTORE_KEY_ALIAS : keyAlias from key.properties file
    • GCP_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-integrationPLAY_STORE_CONFIG_JSON: follow steps
  3. 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
  4. Make sure you follow the workflow in the image Particular how you merge your PR.

RESSOURCES & TOOLS

⚙️ Feel free to add 💡 idea or 🖥 contribute 😊

flutter_ci_cd's People

Contributors

m97chahboun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.