.PHONY: test
test: deps/.get
	mix test

.PHONY: credo
credo: deps/.get
	mix credo --strict

.PHONY: compile-strict
compile-strict: deps/.get
	mix compile --warnings-as-errors

.PHONY: check-formatted
check-formatted: deps/.get
	mix format --check-formatted

.PHONY: check-docs
check-docs: compile
	mix docs 2>&1 | tee /dev/stderr | awk '/warning/ { exit 1; }'

.PHONY: dialyze
dialyze: deps/.get
	mix dialyzer

.PHONY: publish
publish: deps/.get
	mix hex.publish --yes

deps/.get: mix.exs mix.lock
	mix deps.get
	touch $@

.PHONY: compile
compile: deps/.get
	mix compile
