Packages

A dead simple tool for defining and running CI pipelines in Elixir.

Current section

Files

Jump to
mash lib mix tasks mash.ex
Raw

lib/mix/tasks/mash.ex

defmodule Mix.Tasks.Mash do
@shortdoc "Run Mash jobs."
@moduledoc """
Task to run Mash jobs.
"""
use Mix.Task
def run(_args) do
{:ok, _pid} = Mash.Runner.start_link()
receive do
{:result, []} ->
:ok
{:result, failures} ->
failure_list = Enum.map_join(failures, "\n", fn %{name: name} -> "- #{name}" end)
failure_count = Enum.count(failures)
Mix.raise("#{failure_count} job(s) failed.\n#{failure_list}", exit_status: 1)
end
end
end