mix do (Mix v1.19.0-dev)

View Source

Executes the tasks separated by +, aborting if any task errors.

Here is an example:

$ mix do compile --list + deps

The plus should be followed by at least one space before and after.

Examples

The example below prints the available compilers and then the list of dependencies.

$ mix do compile --list + deps

Note that the majority of Mix tasks are only executed once per invocation. So for example, the following command will only compile once:

$ mix do compile + some_other_command + compile

When compile is executed again, Mix will notice the task has already ran, and skip it.

Inside umbrella projects, you can limit recursive tasks (the ones that run inside every app) by selecting the desired application via the --app flag after do and before the first task:

$ mix do --app app1 --app app2 compile --list + deps

Elixir versions prior to v1.14 used the comma exclusively to separate commands:

$ mix do compile --list, deps

Since then, the + operator has been introduced as a separator for better support on Windows terminals.

Error handling

If any task in the list of tasks exits with an error, no subsequent tasks will be run. For instance:

$ mix do compile + test

If the compilation step fails, the tests will not be attempted.

Command line options

  • --app - limit recursive tasks to the given apps. This option may be given multiple times and must come before any of the tasks.