-
Notifications
You must be signed in to change notification settings - Fork 29
/
Makefile
68 lines (57 loc) · 1.74 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
PROJECT = snakefmt
COVG_REPORT = htmlcov/index.html
OS := $(shell uname -s)
VERSION := $(shell poetry version -s)
BOLD := $(shell tput bold)
NORMAL := $(shell tput sgr0)
# MAIN #########################################################################
.PHONY: all
all: install
# DEPENDENCIES #################################################################
.PHONY: install
install:
poetry install
.PHONY: install-ci
install-ci:
poetry install --no-interaction
poetry run snakefmt --version
# TIDY #################################################################
.PHONY: fmt
fmt:
poetry run isort .
poetry run black . --exclude venv
.PHONY: lint
lint:
poetry run flake8 . --exclude venv
.PHONY: check-fmt
check-fmt:
poetry run isort --check-only .
poetry run black --check .
# TEST ########################################################################
.PHONY: test
test:
poetry run pytest tests/
.PHONY: coverage
coverage:
poetry run pytest --cov-report term --cov-report html --cov=$(PROJECT) --cov-branch tests/
ifeq ($(OS), Linux)
xdg-open $(COVG_REPORT)
else ifeq ($(OS), Darwin)
open $(COVG_REPORT)
else
echo "ERROR: Unknown OS detected - $OS"
endif
# PRECOMMIT ########################################################################
# runs format, lint and test
.PHONY: precommit
precommit: fmt lint test
# BUILD ########################################################################
.PHONY: build
build:
poetry build
# TAG ########################################################################
# prints out the commands to run to tag the release and push it
.PHONY: tag
tag:
@echo "Run $(BOLD)git tag -a $(VERSION) -m <message>$(NORMAL) to tag the release"
@echo "Then run $(BOLD)git push upstream $(VERSION)$(NORMAL) to push the tag"