Examples
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
"""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(), )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