invertase/melos

Document environment variables

Salakar opened this issue · 0 comments

Docs need doing for the currently supported environment variables automatically injected by the exec command:

Defined by Melos

  • MELOS_ROOT_PATH
    • The path to the mono repo root.
  • MELOS_PACKAGE_NAME
    • The name of the package thats currently executing a script (when using melos exec).
  • MELOS_PACKAGE_VERSION
    • The version of the package thats currently executing a script (when using melos exec).
  • MELOS_PACKAGE_PATH
    • The path of the package thats currently executing a script (when using melos exec).
  • MELOS_PARENT_PACKAGE_NAME
    • The name of the parent package of the current package thats currently executing a script (when using melos exec).
  • MELOS_PARENT_PACKAGE_VERSION
    • The version of the parent package of the current package thats currently executing a script (when using melos exec).
  • MELOS_PARENT_PACKAGE_PATH
    • The path of the parent package of the current package thats currently executing a script (when using melos exec).

These variables are available as environment variables in scripts run by melos exec. They can also automatically replaced/injected on melos exec commands e.g. melos exec --file-exists="./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart" --scope="*example*" -- echo hello

What is a 'parent package'?

If a package exists in a directory that is also a child of another package, then its parent is the 'parent package'. For example; the package firebase_auth has an example directory that is also a package, when running a melos exec script in the example package then the parent package would be firebase_auth.

User defined

  • MELOS_PACKAGES
    • Define a comma delimited list of package names that Melos should focus on. This bypasses all filtering flags if defined.