0 purchases
flutter monorepo build tools
Flutter Monorepo Build Tools #
flutter pub get flutter_monorepo_build_tools
nano monorepo.yaml
see monorepo.sample.yaml for an example of how to configure
Monorepo Build Tool #
Usage #
dart run flutter_monorepo_build_tools:monorepo_build_tool
Re-run the tool whenever you add, rename, or remove a local package or if local package dependencies change.
Arguments #
You can provide the following flags/options to modify the behavior of the monorepo build tool:
Flag
Effect
Default Value
verbose
Enables printing logs.
false
OOTB CI Support #
At release, FMBT only contains out-of-the-box support for CircleCI using the path-filtering approach.
To configure your monorepo:
Create a source folder to contain your raw CircleCI config. This should include one config.yml file and as many continue-config.yml type files as you wish.
config.yml should look something like this:
version: 2.1
# this allows you to use CircleCI's dynamic configuration feature
setup: true
# the path-filtering orb is required to continue a pipeline based on
# the path of an updated fileset
orbs:
path-filtering: circleci/[email protected]
workflows:
# the always-run workflow is always triggered, regardless of the pipeline parameters.
always-run:
jobs:
# the path-filtering/filter job determines which pipeline
# parameters to update.
- path-filtering/filter:
name: check-updated-files
# the mapping key will be automatically generated by flutter_monorepo_build_tools
base-revision: master
# this is the path of the configuration we should trigger once
# path filtering and pipeline parameter value updates are
# complete.
config-path: .circleci/continue-config.yml
copied to clipboard
Create however many continue-config.yml type files you need for your use case. It is important
when naming workflows that they contain the name of your entrypoint directory. For example, if your workflow
is related to an app app, it should be named something like app_deploy. For a full list of matching
globs, see entrypointPermutations in circle_ci_update_manager.dart.
Known Limitations #
Single quotation marks in values must be escaped
Some string values are wrapped with single quotation marks in the output even when they are not
in the source. We believe this is due to json2yaml, which this package uses. It is unclear
at this point whether it is possible to overcome this. We recommend that you run this tool on
your existing configuration and validate the output before committing to this tool.
If you have a line like this:
- run: echo 'export PATH="$PATH:`pwd`/flutter/bin"' \>> $BASH_ENV
copied to clipboard
then you will need to escape the single quotes by prepending them with an additional single quote,
like so:
- run: echo ''export PATH="$PATH:`pwd`/flutter/bin"'' \>> $BASH_ENV
copied to clipboard
It is important that you do not wrap such a value in single quotes, e.g.
# DO NOT DO THIS
- run: 'echo: ''something'''
# DO THIS INSTEAD
- run: echo ''something''
copied to clipboard
This will result in your output having unescaped single quotation marks, causing the overall config
to be become impossible to parse.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.