profile := dev
target = $(shell rustc -vV | grep host | awk '{print $$2}')
architectures := x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
app_name := page

default: build

set_rust:
	rustup default stable

prepare:
	rustup target add $(target)

build: prepare
	cargo build --profile $(profile) --target $(target)

test:
	cargo test

coverage:
	cargo tarpaulin --fail-under 100

format:
	cargo fmt && cargo clippy --fix

lint:
	cargo fmt -- --check && cargo clippy

release:
	cargo publish

ci: lint coverage
ifneq (,$(findstring refs/tags/,$(GIT_REF)))
	$(MAKE) release
endif

.PHONY: default set_rust prepare build test coverage format lint release ci
