-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
83 lines (64 loc) Β· 2.91 KB
/
Makefile
File metadata and controls
83 lines (64 loc) Β· 2.91 KB
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
# ============================================================================
# Makefile β ACNH-wiki (Animal Crossing: New Horizons Guide iOS App)
# ============================================================================
#
# Convenience targets for building, linting, validating, and running CI checks.
#
# Prerequisites:
# - mise (https://mise.jdx.dev/) for Tuist version management
# - SwiftLint installed and available on PATH
#
# Usage:
# make β Show available targets
# make setup β One-time project bootstrap
# make ci β Full CI pipeline (lint + validate + build)
#
# ============================================================================
.DEFAULT_GOAL := help
.PHONY: setup build lint lint-fix validate-arch validate-patterns validate-docs validate ci hooks help
# ----------------------------------------------------------------------------
# Setup
# ----------------------------------------------------------------------------
setup: ## Full project setup: mise install + tuist install + tuist generate + hooks
mise install
mise x -- tuist install
mise x -- tuist generate --no-open
$(MAKE) hooks
hooks: ## Configure git to use .githooks/ directory
git config core.hooksPath .githooks
# ----------------------------------------------------------------------------
# Build
# ----------------------------------------------------------------------------
build: ## Build the project with Tuist
mise x -- tuist build
# ----------------------------------------------------------------------------
# Lint
# ----------------------------------------------------------------------------
lint: ## Run SwiftLint
swiftlint --config .swiftlint.yml
lint-fix: ## Run SwiftLint with auto-fix
swiftlint --config .swiftlint.yml --fix
# ----------------------------------------------------------------------------
# Validation
# ----------------------------------------------------------------------------
validate-arch: ## Run architecture boundary validation
bash scripts/validate-architecture.sh
validate-patterns: ## Run pattern convention validation
bash scripts/validate-patterns.sh
validate-docs: ## Run documentation reference validation
bash scripts/validate-docs.sh
validate: validate-arch validate-patterns validate-docs ## Run all validations (architecture + patterns + docs)
# ----------------------------------------------------------------------------
# CI
# ----------------------------------------------------------------------------
ci: lint validate build ## Full CI check: lint + validate + build
# ----------------------------------------------------------------------------
# Help
# ----------------------------------------------------------------------------
help: ## Show this help message
@echo ""
@echo "ACNH-wiki β Available targets:"
@echo ""
@grep -E '^[a-zA-Z_-]+:.*##' $(MAKEFILE_LIST) \
| awk 'BEGIN {FS = ":.*## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
@echo ""