Skip to content

Specialized MacOS Images for iOS Frameworks (Flutter, ReactNative, ...)

🕦 Problem: brew update takes 29min with Brewfile

  • Our Brewfile takes 29min to install desired libraries
    • Do any other settings matter? Processors? Memory available?

Screen_Shot_2021-09-30_at_10.04.29_PM

  • Other problems include very sensitive errors while installing components to the host
    • In this case, I still have problems installing the docker engine in the host

Screen_Shot_2021-09-30_at_10.04.20_PM

💡 Alternative Solution

I'm not sure if it's possible, but I'm guessing the community could vote in a couple of solutions:

  • Provide specialized images based on Frameworks
    • Flutter
    • React Native
    • ionic
    • ...
  • Basic versions could be provided to speed up the pipeline process
    • Similar to Docker Images, Gitlab could provide the images with the same tag format based on the base OS version and framework used
    • Users could just include dependencies via Brewfile or any other dependency management they want to use

DESIGN: Maybe specify a set of Brewfile instances for these target MacOS Images

🐛 Related Issues

🗒 Brewfile for Flutter Apps

  • The example below includes basic binaries to Flutter apps
    • It includes the basic binaries for iOS
    • Flutter framework with version management
    • docker engine to reuse tasks implemented in Docker containers
# Install the docker engine using cask https://www.cprime.com/resources/blog/docker-on-mac-with-homebrew-a-step-by-step-tutorial/
# It is brew install --cask docker when using the cmd
cask "docker"

# Creates the symlinks for the engine https://stackoverflow.com/questions/40523307/brew-install-docker-does-not-include-docker-engine/47275246#47275246
brew "bash-completion"               # to force symlinks, not working still
brew "docker-completion"             # to force symlinks, not working still
brew "docker-compose-completion"     # to force symlinks, not working still

# Install coreutils for realpath in case it doesn't exist https://formulae.brew.sh/formula/coreutils
brew "coreutils"

# THIS DEPENDS ON Xcode to be installed
# This is required to make calls to Apple Store to retrieve the AppID for CICD
# 2FA requires the APP ID. We need to automate the retrieval of APPID
tap "mike-engel/jwt-cli"
brew "jwt-cli"

# Dependency management for IO https://cocoapods.org/
brew "cocoapods"

# Required for the Gemfile install of fastlane
#brew "rbenv"
brew "ruby-build"

# Build system for flutter (IOS, Android, WEB) https://docs.fastlane.tools/
brew "fastlane"

# Flutter version management https://github.com/leoafarias/fvm
tap "dart-lang/dart"
tap "leoafarias/fvm"
brew "fvm"

# View the ceriticates https://github.com/ealeksandrov/ProvisionQL
#brew "provisionql"
Edited by Marcello DeSales