Harmont docs
Examples

Elixir

A mix project: compile, test, format, Credo, Dialyzer, plus deps_audit/hex_audit.

A mix project: compile, test, format, Credo, Dialyzer, plus deps_audit/hex_audit.

Project layout

.formatter.exs
.gitignore
mix.exs
mix.lock

Pipeline

.hm/pipeline.py
"""Elixir example pipeline."""from __future__ import annotationsimport harmont as hm@hm.pipeline(    "ci",    env={"CI": "true", "MIX_ENV": "test"},    default_image="ubuntu:24.04",    triggers=[hm.push(branch="main")],)def ci() -> tuple[hm.Step, ...]:    project = hm.elixir(path=".")    return (        project.compile(),        project.test(),        project.format(),        project.credo(),        project.dialyzer(),        project.deps_audit(),        project.hex_audit(),    )
.hm/pipeline.ts
import { pipeline, push, type PipelineDefinition } from "@harmont/hm";import { elixir } from "@harmont/hm/toolchains";const project = elixir({ path: "." });const pipelines: PipelineDefinition[] = [  {    slug: "ci",    triggers: [push({ branch: "main" })],    pipeline: pipeline(      [        project.compile(),        project.test(),        project.format(),        project.credo(),        project.dialyzer(),        project.depsAudit(),        project.hexAudit(),      ],      { env: { CI: "true", MIX_ENV: "test" }, defaultImage: "ubuntu:24.04" },    ),  },];export default pipelines;

Run it

hm run ci

On this page