# Development tasks. Everything runs through `mix`, so there is nothing to # install first: the library has no dependencies. # # make list the targets # make test run the ExUnit suite # make lint mix format --check-formatted, no files touched # make build compile with warnings as errors MIX ?= mix .DEFAULT_GOAL := help .PHONY: help test lint format build check clean help: @echo 'Targets:' @echo ' test run the ExUnit suite' @echo ' lint mix format --check-formatted (read-only)' @echo ' format apply mix format (writes)' @echo ' build compile with warnings as errors' @echo ' check lint + test + build, in that order' @echo ' clean remove build artefacts' test: $(MIX) test # Read-only by design, so it is safe in CI and in a pre-commit hook: it reports # what `make format` would change without changing anything. lint: $(MIX) format --check-formatted format: $(MIX) format build: $(MIX) compile --warnings-as-errors # The order matters: lint is the fastest to fail, build the slowest, so a # broken run reports the cheapest problem first. check: lint test build clean: rm -rf _build deps doc cover