Skip to content

Commit 6fb3963

Browse files
committed
update make targts
1 parent 2621470 commit 6fb3963

File tree

1 file changed

+38
-26
lines changed

1 file changed

+38
-26
lines changed

Makefile

Lines changed: 38 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,68 @@
1-
help:
2-
@echo "Call a specific subcommand:"
3-
@echo
4-
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
5-
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
6-
@echo
1+
.DEFAULT_GOAL := help
72

8-
default: help
3+
help: ## Display this help text
4+
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
5+
6+
# =============================================================================
7+
# Docker State
8+
# =============================================================================
99

1010
.state/docker-build-web: Dockerfile pyproject.toml
11-
# Build web container for this project
1211
docker compose build --force-rm web
13-
14-
# Mark the state so we don't rebuild this needlessly.
1512
mkdir -p .state && touch .state/docker-build-web
1613

1714
.state/db-migrated:
18-
# Call migrate target
19-
make migrate
20-
21-
# Mark the state so we don't rebuild this needlessly.
15+
make migrate
2216
mkdir -p .state && touch .state/db-migrated
2317

2418
.state/db-initialized: .state/docker-build-web .state/db-migrated
25-
# Load all fixtures
2619
docker compose run --rm web ./manage.py loaddata fixtures/*.json
27-
28-
# Mark the state so we don't rebuild this needlessly.
2920
mkdir -p .state && touch .state/db-initialized
3021

22+
# =============================================================================
23+
# Development
24+
# =============================================================================
25+
26+
##@ Development
27+
3128
serve: .state/db-initialized ## Start the application
3229
docker compose up --remove-orphans
3330

3431
migrations: .state/db-initialized ## Generate migrations from models
35-
docker compose run --rm web ./manage.py makemigrations
36-
32+
docker compose run --rm web ./manage.py makemigrations
33+
3734
migrate: .state/docker-build-web ## Run Django migrate
38-
docker compose run --rm web ./manage.py migrate
35+
docker compose run --rm web ./manage.py migrate
3936

40-
manage: .state/db-initialized ## Run Django manage to accept arbitrary arguments
37+
manage: .state/db-initialized ## Run arbitrary manage.py commands
4138
docker compose run --rm web ./manage.py $(filter-out $@,$(MAKECMDGOALS))
4239

4340
shell: .state/db-initialized ## Open Django interactive shell
4441
docker compose run --rm web ./manage.py shell
4542

43+
docker_shell: .state/db-initialized ## Open bash in web container
44+
docker compose run --rm web /bin/bash
45+
4646
clean: ## Clean up the environment
4747
docker compose down -v
48-
rm -f .state/docker-build-web .state/db-initialized .state/db-migrated
48+
rm -f .state/docker-build-web .state/db-initialized .state/db-migrated
49+
50+
# =============================================================================
51+
# Code Quality
52+
# =============================================================================
53+
54+
##@ Code Quality
4955

50-
test: .state/db-initialized ## Run tests
56+
lint: ## Run ruff linter (--fix enabled)
57+
@if command -v ruff >/dev/null 2>&1; then ruff check --fix .; else docker compose run --rm web ruff check --fix .; fi
58+
59+
fmt: ## Run ruff formatter
60+
@if command -v ruff >/dev/null 2>&1; then ruff format .; else docker compose run --rm web ruff format .; fi
61+
62+
test: .state/db-initialized ## Run test suite
5163
docker compose run --rm web ./manage.py test
5264

53-
docker_shell: .state/db-initialized ## Open a bash shell in the web container
54-
docker compose run --rm web /bin/bash
65+
ci: lint fmt test ## Run lint, fmt, then tests
5566

56-
.PHONY: help serve migrations migrate manage shell clean test docker_shell
67+
.PHONY: help serve migrations migrate manage shell docker_shell clean
68+
.PHONY: lint fmt test ci

0 commit comments

Comments
 (0)