File: Makefile

package info (click to toggle)
pwman3 0.13.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 636 kB
  • sloc: python: 3,421; makefile: 215; sh: 61; javascript: 6
file content (103 lines) | stat: -rw-r--r-- 2,307 bytes parent folder | download
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.PHONY: clean-pyc clean-build docs clean test coverage coverage-run clean_all
SHELL := /bin/bash
.DEFAULT_GOAL := help

.PHONY: help
help:
	@mh -f $(MAKEFILE_LIST) $(target) || echo "Please install mh from https://github.com/oz123/mh/releases"
ifndef target
	@(which mh > /dev/null 2>&1 && echo -e "\nUse \`make help target=foo\` to learn more about foo.")
endif

help:

clean_all:
	clean
	clean_docs
	clean_coverage_report

clean: clean-build clean-pyc

clean_docs:
	$(MAKE) -C docs clean

clean_coverage_report:
	rm -rf htmlcov/

clean-build:
	rm -fr build/
	rm -fr dist/
	rm -fr *.egg-info

clean-pyc:
	find . -name '*.pyc' -exec rm -f {} +
	find . -name '*.pyo' -exec rm -f {} +
	find . -name '*~' -exec rm -f {} +
	find . -name '__pycache__' -exec rm -rf {} +

lint:
	flake8 pwman scripts

pre-test:
	$(shell sudo service postgresql-9.4 start)
	$(shell sudo service mysql start)
	$(shell sudo service mongodb start)

test-integration: PWMAN_FAILFAST=1 #? stop on first failure
test-integration: clean install
	python -m tests.test_integration

install-integrationtest-deps:
	pip install -r requirements-integration.txt

install-unittest-deps:
	pip install -r requirements-unittest.txt

test-unit: PWMAN_FAILFAST=1 #? stop on first failure
test-unit: clean install ## run the unit tests
	python -m tests.test_pwman
	@rm -f tests/test.conf

test-all: OPTS ?="--parallel -o" #? options to pass to tox
test-all:
	tox $(OPTS)

build-manpage:
	python man-page-builder.py

coverage-run:
	coverage run --append -m tests.test_pwman
	coverage run --append -m tests.test_integration
	coverage report -m
	@coverage html

coverage: coverage-run

docs:
	#rm -f docs/manutils.rst
	#rm -f docs/modules.rst
	sphinx-apidoc -o docs/source/ pwman
	$(MAKE) -C docs clean
	$(MAKE) -C docs html
	xdg-open docs/build/html/index.html

install:
	pip install -e .

docker/build:: TAG ?= latest
docker/build::  ## build a docker image for pwman3 tests
	docker build -t oz123/pwman3:$(TAG) .

infra-compose::  ## start the infrastructure for the tests
	docker compose --profile infra  up -d

test-compose::  ## run all tests in docker compose
	docker compose down -v
	docker compose build
	docker compose up --profile test --abort-on-container-exit
	docker compose down -v

release:
	python -m build

# vim: tabstop=4 shiftwidth=4