- Add
@cache
token
- Add a debug layer so that the node processes can be inspected
- Write output logs for every action
-
run-many
-
graph
- Spin up an interactive website with full project/task data
- Add chrome profiling support to spawned processes
- Publish npm packages
- Add header to docs homepage
- Ignore hashes for files that are gitignored
- Add docs on caching options
- Add code coverage reports in CI
- macOS arm64
- Linux x64 (musl)
- website
- getting started
- macos x64
- linux x64 (gnu)
- windows x64
- Can define metadata
- File groups
- Configure in
project.yml
- Deep overrides with global
project.yml
- Configure in
- Tasks
- Configure in
project.yml
- Deep merges with global
project.yml
- Supports merge strategies
- Configure in
- Checks if affected based in a file list
- Lazy loads
package.json
- Lazy loads
tsconfig.json
- Lazy load projects when needed
- Get direct dependencies
- Get direct dependents
- Command (and type)
- Args
- Inputs
- Checks if affected based in a file list
- Globs
- Relative paths
- Workspace relative paths
- Outputs
- Write outputs to
.moon/cache/out
- Symlink/copy outputs back to project dir
- Write outputs to
- Dependencies (on other tasks)
- Environment vars
- Tokens
- Expands tokens defined in configs
- Can run from project root or workspace root (using
run_from_workspace_root
) - Self referencing targets (
~
) - Deps referencing targets (
^
)
- Sorts dep graph topologically
- Groups into batches and parallelizes
- Runs in a thread pool (via tokio)
- Runs task based on
type
- Retries when failed (using
retry_count
) - Streams output when a primary target
- Buffers output when a non-primary target
- Bubbles up errors
- Installs npm dependencies
- Syncs
package.json
andtsconfig.json
for all projects- Writes JSON preserving field order
- Handle non-0 exit codes
- Handle offline
-
init
command to scaffold a new project -
project
command for displaying info -
project-graph
command for outputting DOT format -
setup
command for installing tools -
teardown
command for uninstalling tools -
bin
command to return tool paths -
run
command to run targets- Args after
--
are passed to the underlying command - Only run on affected changes
- Run multiple targets
- Args after
-
ci
command for smart running affected targets (below)
- Compares PR against default branch
- Runs tasks if
outputs
defined orrun_in_ci
is true - Runs dependencies AND dependents
- add a
--no-cache
option to disable all caching - hashing
- use
stdin
for commands that take long arguments - dont load
package.json
/tsconfig.json
so much - delete old hashes when the hash changes
- include local file changes in hash
- use