mcpField
A
automate-flutter-app-releases

automate-flutter-app-releases

github.com/rodydavisCloud & DevOps6067 installsUpdated 2w ago
Repository

About automate-flutter-app-releases

A shell script for Flutter project maintainers that automates beta and production releases. It combines version updates, Fastlane releases, Dart formatting, project cleanup, class rebuilding, commits, and CocoaPods updates.

Key features

  1. 01Beta and production release commands
  2. 02Version updates from pubspec.yaml
  3. 03Fastlane app releases
  4. 04Dart formatting and project cleanup
  5. 05Class rebuilding and CocoaPods updates

Use cases

  1. 01Preparing a Flutter app beta release
  2. 02Running a production app release
  3. 03Formatting and rebuilding before release

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/rodydavis/skills --skill automate-flutter-app-releases

After installing, type/automate-flutter-app-releasesin Claude Code to confirm it loaded.

Details

From the project README

Automate Flutter App Releases

TLDR You can find the script here.

#!/bin/bash

echo "App Release Automator by @rodydavis"

action="$1"
red=`tput setaf 1`
green=`tput setaf 2`
reset=`tput sgr0`

if [ ${action} = "build" ]; then

    echo "${green}Generating built files.. ${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Build $(pubver bump patch)"
    
    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Builing IPA..${reset}"
    cd ./ios && pod install && pod repo update && cd ..
    flutter build ios

    git commit -a -m "Project Rebuilt"


elif [ ${action} = "beta" ]; then

    echo "${green}Generating built files..${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Beta $(pubver bump patch)"
    
    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Sending Android to Beta...${reset}"
    cd ./android && fastlane beta && cd ..

    echo "${green}Builing IPA..${reset}"
    flutter build ios

    echo "${green}Sending iOS to Beta..${reset}"
    cd ./ios && fastlane beta && cd ..

    git commit -a -m "Sent to Beta"


elif [ ${action} = "release" ]; then

    echo "${green}Generating built files..${reset}"
    flutter packages pub run build_runner clean
    flutter packages pub run build_runner build --delete-conflicting-outputs

    pub global activate pubspec_version
    git commit -a -m "Production $(pubver bump minor)"

    echo "${green}Building Project...${reset}"
    find . -name "*-e" -type f -delete
    flutter format .
    flutter clean

    echo "${green}Project Size: $(find . -name "*.dart" | xargs cat | wc -c)${reset}"

    echo "${green}Building APK...${reset}"
    flutter build apk

    echo "${green}Sending Android to Production...${reset}"
    cd ./android && fastlane release && cd ..

    echo "${green}Builing IPA..${reset}"
    flutter build ios

    echo "${green}Sending iOS to Production...${reset}"
    cd ./ios && fastlane release && cd ..

    git commit -a -m "Sent to Production"

fi

echo "${green}Successfully completed${reset}"

Needed:

  • Fastlane setup in each directory
  • build_runner as a dependency
  • Git Project in VCS

Steps to Run:

  1. Download this file and put it at the root level of your flutter project
  2. Open the terminal and navigate to your project location
  3. Enter this command: chmod +x release.sh

Usage

  • For beta: ./release.sh beta
  • For production: ./release.sh release

It will do the following:

  • Bump the version numbers if you are using the version in the pubspec.yaml
  • Release the apps with Fastlane
  • Format all Dart Files
  • Clean Project
  • Rebuild classes
  • Add commit message

Make your life easier and automate your builds to beta and production!

What you need 

Initial Setup 

  • Download this file
  • Put it at the root level of your flutter project
  • Open the terminal and navigate to your project location
  • Enter this command: chmod +x release.sh

Usage 

Now you can call this script!

  • For beta: ./release.sh beta
  • For production: ./release.sh release

Overview 

  • Bump the version numbers if you are using the version in the pubspec.yaml
  • Release the apps with Fastlane
  • Format all Dart Files
  • Clean Project
  • Rebuild classes
  • Add commit messages
  • Updates Cocoa Pods

Comments

Markdown supported