With Flutter we don’t have a modular build system like Gradle. But where should you put your code to automate your CI/CD process?

A simple bash script in your /tool directory is a good start, but to be honest: None of us is “good at bash” and nobody really wants to learn it. It doesn’t scale, doesn’t support dependencies and is not testable.

Dart to the rescue! Sidekick generates a Dart command-line application for you. You can use the built-in command

– `deps` gets all dependencies for all packages
– `gen` runs the build_runner, and formats the code afterwards
– `format` runs dart format across the project, ignores generated files.

or use the project a starting point for you own commands to be shared with your team. Need some ideas?:

– Automatically bump your version number
– Release your app to the Play Store / AWS / Firebase
– Generate a changelog based on the merged PRs
– Home-made build flavors: Switch between environments by editing and swapping of some files