Mash is a dead simple tool for defining and running CI pipelines in Elixir.

Dependencies

Installation

Add mash to your dependencies like so:

def deps do
  [
    {:mash, "~> 0.1.0"}
  ]
end

Configuring pipelines

To configure your job pipeline, create a .mash.exs file at the root of your project containing a module which implements a jobs/0 function:

defmodule MashConfig do
  import Mash.Helpers

  def jobs do
    [
      %{
        name: :test,
        run: mix("test")
      },
      %{
        name: :credo, 
        run: mix("credo", ["--all"])
      },
    ]
  end
end

Each entry in the jobs list must, at a minimum, have two keys:

Optionally, a job may also contain a key needs whose value is an array of other jobs that must pass before this job will be run.

Running

mix mash

Full Documentation

Full documentation is available on HexDocs.