run
The moon run
(or moon r
) command will run one or many targets and all of
its dependencies in topological order. Each run will incrementally cache each task, improving speed
and development times... over time. View the official Run a task and
Cheat sheet articles for more information!
# Run `lint` in project `app`
$ moon run app:lint
$ moon app:lint
# Run `dev` in project `client` and `server`
$ moon run client:dev server:dev
# Run `test` in all projects
$ moon run :test
# Run `test` in all projects with tag `frontend`
$ moon run '#frontend:test'
# Run `format` in closest project (`client`)
$ cd apps/client
$ moon run format
# Run `build` in projects matching the query
$ moon run :build --query "language=javascript && projectType=library"
info
How affected status is determined is highly dependent on whether the command is running locally, in CI, and what options are provided. The following scenarios are possible:
- When
--affected
is provided, will explicitly use--remote
to determine CI or local. - When not provided, will use
git diff
in CI, orgit status
for local. - To bypass affected logic entirely, use
--force
.
Arguments
...<target>
- Targets or project relative tasks to run.[-- <args>]
- Additional arguments to pass to the underlying command.
Options
-f
,--force
- Force run and ignore touched files and affected status. Will not query VCS.--dependents
- Run downstream dependent targets (of the same task name) as well.-i
,--interactive
- Run the target in an interactive mode.--profile <type>
- Record and generate a profile for ran tasks.- Types:
cpu
,heap
- Types:
--query
- Filter projects to run targets against using a query statement. v1.3.0--summary
- Display a summary and stats of the current run. v1.25.0-u
,--updateCache
- Bypass cache and force update any existing items.
Affected
--affected
- Only run target if affected by changed files, otherwise will always run.--remote
- Determine affected against remote by comparingHEAD
against a base revision (default branch), otherwise uses local changes.- Can control revisions with
MOON_BASE
andMOON_HEAD
.
- Can control revisions with
--status <type>
- Filter affected based on a change status. Can be passed multiple times.- Types:
all
(default),added
,deleted
,modified
,staged
,unstaged
,untracked
- Types: