@@ -35,10 +35,12 @@ GREEN=\033[1;32m
3535YELLOW =\033[1;33m
3636NC =\033[0m # No Color
3737
38+ include help.mk # place after ALL target and before all other targets
39+
3840# ───────────────────────────────────────────────────────────
3941# 📝 CHECK & COPY .env IF MISSING
4042# ───────────────────────────────────────────────────────────
41- env :
43+ env : # # 📝 CHECK & COPY .env IF MISSING
4244 @echo -e " $( YELLOW) 🔍 Checking for .env file...$( NC) "
4345 @if [ ! -f .env ]; then \
4446 echo -e " $( RED) ⚠️ .env file not found! Creating from .env.example...$( NC) " ; \
5153# ───────────────────────────────────────────────────────────
5254# 🎨 FORMAT CODE (gofmt & goimports)
5355# ───────────────────────────────────────────────────────────
54- format :
56+ format : # # 🎨 FORMAT CODE (gofmt & goimports)
5557 @echo -e " $( YELLOW) 🎨 Formatting Go code...$( NC) "
5658 @gofmt -w .
5759 @go install golang.org/x/tools/cmd/goimports@$(IMPORTS_VERSION )
5860 @goimports -w .
5961 @echo -e " $( GREEN) ✅ Code formatted successfully!$( NC) "
6062
61- # ───────────────────────────────────────────────────────────
62- # 🔍 RUN GO VET (Code Inspection)
63- # ───────────────────────────────────────────────────────────
64- vet :
63+ vet : # # 🔍 RUN GO VET (Code Inspection)
6564 @echo -e " $( YELLOW) 🔍 Running go vet...$( NC) "
6665 @go vet ./...
6766 @echo -e " $( GREEN) ✅ go vet completed!$( NC) "
6867
69- # ───────────────────────────────────────────────────────────
70- # 🛡️ SECURITY SCAN (govulncheck)
71- # ───────────────────────────────────────────────────────────
72- security_scan :
68+ security_scan : # # 🛡️ SECURITY SCAN (govulncheck)
7369 @echo -e " $( RED) 🛡️ Running security vulnerability scan...$( NC) "
7470 @go install golang.org/x/vuln/cmd/govulncheck@$(VULN_VERSION )
7571 @govulncheck ./...
7672 @echo -e " $( GREEN) ✅ Security scan completed!$( NC) "
7773
78- # ───────────────────────────────────────────────────────────
79- # 🔄 Install DEPENDENCIES (go mod tidy & upgrade)
80- # ───────────────────────────────────────────────────────────
81- install_deps :
74+ install_deps : # # 🔄 Install DEPENDENCIES (go mod tidy & upgrade)
8275 @echo -e " $( YELLOW) 🔄 Install Go dependencies....$( NC) "
8376 @go mod tidy
8477 @echo -e " $( GREEN) ✅ Dependencies updated!$( NC) "
8578
86- # ───────────────────────────────────────────────────────────
87- # 🔎 LINT CODE (golangci-lint)
88- # ───────────────────────────────────────────────────────────
89- lint :
79+ lint : # # 🔎 LINT CODE (golangci-lint)
9080 @echo -e " $( YELLOW) 🔎 Running golangci-lint...$( NC) "
9181 @which golangci-lint > /dev/null 2>&1 || (echo -e " $( RED) ❌ golangci-lint not installed! Installing now...$( NC) " && go install github.com/golangci/golangci-lint/cmd/golangci-lint@$( LINT_VERSION) )
9282 @golangci-lint run ./...
9383
94- # ───────────────────────────────────────────────────────────
95- # 📢 STATIC CODE ANALYSIS (staticcheck)
96- # ───────────────────────────────────────────────────────────
97- staticcheck :
84+ staticcheck : # # 📢 STATIC CODE ANALYSIS (staticcheck)
9885 @echo -e " $( YELLOW) 📢 Running staticcheck...$( NC) "
9986 @which staticcheck > /dev/null 2>&1 || (echo -e " $( RED) ❌ staticcheck not installed! Installing now...$( NC) " && go install honnef.co/go/tools/cmd/staticcheck@latest)
10087 @staticcheck ./...
10188
102- # ───────────────────────────────────────────────────────────
103- # 🏃 RUN APPLICATION
104- # ───────────────────────────────────────────────────────────
105- run :
89+ run : # # 🏃 RUN APPLICATION
10690 @echo -e " $( BLUE) 🚀 Running the application...$( NC) "
10791 @go run cmd/server/main.go
10892
109- # ───────────────────────────────────────────────────────────
110- # ✅ RUN TESTS
111- # ───────────────────────────────────────────────────────────
112- test :
93+ test : # # ✅ RUN TESTS
11394 @echo -e " $( YELLOW) 🔍 Running tests...$( NC) "
11495 @go test -v ./...
11596
116- # ───────────────────────────────────────────────────────────
117- # 📊 GENERATE COVERAGE REPORT
118- # ───────────────────────────────────────────────────────────
119- html-coverage : $(COVERAGE_DIR ) /coverage.out
97+ html-coverage : $(COVERAGE_DIR ) /coverage.out # # 📊 GENERATE COVERAGE REPORT
12098 @echo -e " $( GREEN) 📊 Generating HTML coverage report...$( NC) "
12199 @go tool cover -html=$(COVERAGE_DIR ) /coverage.out -o $(COVERAGE_DIR ) /coverage.html
122100 @echo -e " $( GREEN) ✅ HTML coverage report generated at $( COVERAGE_DIR) /coverage.html$( NC) "
@@ -128,59 +106,40 @@ $(COVERAGE_DIR)/coverage.out: | $(COVERAGE_DIR)
128106 @echo -e " $( YELLOW) 📈 Running coverage analysis...$( NC) "
129107 @go test -coverprofile=$(COVERAGE_DIR ) /coverage.out ./...
130108
131- # Ensure .coverage directory exists
132- $(COVERAGE_DIR ) :
109+ $(COVERAGE_DIR ) : # # Ensure .coverage directory exists
133110 @mkdir -p $(COVERAGE_DIR )
134111
135- # ───────────────────────────────────────────────────────────
136- # 📥 INSTALL SWAG CLI TOOL & PACKAGES
137- # ───────────────────────────────────────────────────────────
138- install_swag :
112+ install_swag : # # 📥 INSTALL SWAG CLI TOOL & PACKAGES
139113 @echo -e " $( GREEN) 📥 Installing Swag CLI and dependencies...$( NC) "
140114 @which swag > /dev/null 2>&1 || (echo -e " $( RED) ❌ Swag CLI not found! Installing now...$( NC) " && go install github.com/swaggo/swag/cmd/swag@latest)
141115 @echo -e " $( YELLOW) 🔄 Updating project dependencies for Swag...$( NC) "
142116 @go mod tidy
143117 @go mod download
144118 @echo -e " $( GREEN) ✅ Swag installation complete!$( NC) "
145119
146- # ───────────────────────────────────────────────────────────
147- # 📜 GENERATE API DOCUMENTATION
148- # ───────────────────────────────────────────────────────────
149- generate_docs : install_swag
120+ generate_docs : install_swag # # 📜 GENERATE API DOCUMENTATION
150121 @echo -e " $( YELLOW) 📜 Generating API documentation using Swag...$( NC) "
151122 @swag init --parseDependency --parseInternal --parseDepth 1 -g ./cmd/server/main.go -o ./docs
152123 @echo -e " $( GREEN) ✅ API documentation generated successfully!$( NC) "
153124
154- # ───────────────────────────────────────────────────────────
155- # 🏗️ BUILD PROJECT
156- # ───────────────────────────────────────────────────────────
157- build :
125+ build : # # 🏗️ BUILD PROJECT
158126 @echo -e " $( BLUE) 🏗️ Building the Go application...$( NC) "
159127 @mkdir -p $(BUILD_DIR ) # ✅ Ensure the build directory exists
160128 @CGO_ENABLED=0 GOOS=linux go build $(GO_FLAGS ) -o $(BUILD_DIR ) /$(BUILD_NAME ) $(CMD_DIR ) /main.go
161129 @ls -lh $(BUILD_DIR ) # ✅ Debug: List contents of the build directory
162130 @echo -e " $( GREEN) ✅ Build complete: $( BUILD_DIR) /$( BUILD_NAME) $( NC) "
163131
164- # ───────────────────────────────────────────────────────────
165- # 🧹 CLEAN BUILD & COVERAGE FILES
166- # ───────────────────────────────────────────────────────────
167- clean :
132+ clean : # # 🧹 CLEAN BUILD & COVERAGE FILES
168133 @echo -e " $( YELLOW) 🧹 Cleaning up build and coverage files...$( NC) "
169134 @rm -rf $(BUILD_DIR )
170135 @rm -rf $(COVERAGE_DIR )
171136 @echo -e " $( GREEN) ✅ Cleanup complete!$( NC) "
172137
173- # ───────────────────────────────────────────────────────────
174- # 🔍 CHECK MIGRATION VERSION
175- # ───────────────────────────────────────────────────────────
176- version :
138+ version : # # 🔍 CHECK MIGRATION VERSION
177139 @echo -e " $( BLUE) 🔍 Checking installed migrate version...$( NC) "
178140 @$(INSTALL_DIR ) /migrate -version
179141
180- # ───────────────────────────────────────────────────────────
181- # 📥 INSTALL GOLANG-MIGRATE
182- # ───────────────────────────────────────────────────────────
183- install_migration :
142+ install_migration : # # 📥 INSTALL GOLANG-MIGRATE
184143 @echo -e " $( GREEN) 📥 Installing golang-migrate ($( MIGRATE_VERSION) )...$( NC) "
185144 @mkdir -p $(INSTALL_DIR )
186145 @curl -L https://github.com/golang-migrate/migrate/releases/download/$(MIGRATE_VERSION ) /migrate.linux-amd64.tar.gz -o migrate.tar.gz
@@ -190,74 +149,45 @@ install_migration:
190149 @rm -f migrate.tar.gz
191150 @echo -e " $( GREEN) ✅ Installation complete. Ensure $( INSTALL_DIR) is in your PATH.$( NC) "
192151
193- # ───────────────────────────────────────────────────────────
194- # 📦 CREATE A NEW DATABASE MIGRATION
195- # ───────────────────────────────────────────────────────────
196- create_migration :
152+ create_migration : # # 📦 CREATE A NEW DATABASE MIGRATION
197153 @echo -e " $( YELLOW) 📦 Creating a new database migration...$( NC) "
198154 @$(INSTALL_DIR ) /migrate create -ext=sql -dir=package/database/migrations -seq init
199155
200- # ───────────────────────────────────────────────────────────
201- # ⬆️ APPLY DATABASE MIGRATIONS
202- # ───────────────────────────────────────────────────────────
203- migrate_up :
156+ migrate_up : # # ⬆️ APPLY DATABASE MIGRATIONS
204157 @echo -e " $( GREEN) ⬆️ Applying database migrations...$( NC) "
205158 @$(INSTALL_DIR ) /migrate -path=package/database/migrations \
206159 -database " mysql://${DB_USER} :${DB_PASSWORD} @tcp(${DB_HOST} :${DB_PORT} )/${DB_NAME} " \
207160 -verbose up
208-
209- # ───────────────────────────────────────────────────────────
210- # ⬇️ ROLLBACK DATABASE MIGRATIONS
211- # ───────────────────────────────────────────────────────────
212- migrate_down :
161+ migrate_down : # # ⬇️ ROLLBACK DATABASE MIGRATIONS
213162 @echo -e " $( RED) ⬇️ Rolling back database migrations...$( NC) "
214163 @$(INSTALL_DIR ) /migrate -path=package/database/migrations \
215164 -database " mysql://${DB_USER} :${DB_PASSWORD} @tcp(${DB_HOST} :${DB_PORT} )/${DB_NAME} " \
216165 -verbose down
217-
218- # ───────────────────────────────────────────────────────────
219- # 🐳 BUILD DOCKER IMAGE
220- # ───────────────────────────────────────────────────────────
221- docker_build : env docker_down
166+ docker_build : env docker_down # # 🐳 BUILD DOCKER IMAGE
222167 @echo -e " $( BLUE) 🐳 Building Docker image...$( NC) "
223168 @sudo docker-compose build
224169 @echo -e " $( GREEN) ✅ Docker image built successfully!$( NC) "
225170
226- # ───────────────────────────────────────────────────────────
227- # 🚀 START DOCKER CONTAINERS
228- # ───────────────────────────────────────────────────────────
229- docker_up : docker_build
171+ docker_up : docker_build # # 🚀 START DOCKER CONTAINERS
230172 @echo -e " $( BLUE) 🚀 Starting Docker containers...$( NC) "
231173 @sudo docker-compose up -d
232174 @echo -e " $( GREEN) ✅ Docker containers started successfully!$( NC) "
233175
234- # ───────────────────────────────────────────────────────────
235- # 📦 STOP & REMOVE DOCKER CONTAINERS
236- # ───────────────────────────────────────────────────────────
237- docker_down :
176+ docker_down : # # 🛑 STOP & REMOVE DOCKER CONTAINERS
238177 @echo -e " $( YELLOW) 🛑 Stopping and removing Docker containers...$( NC) "
239178 @sudo docker-compose down
240179 @echo -e " $( GREEN) ✅ Docker containers stopped and removed!$( NC) "
241180
242- # ───────────────────────────────────────────────────────────
243- # 📜 VIEW DOCKER LOGS
244- # ───────────────────────────────────────────────────────────
245- docker_logs :
181+ docker_logs : # # 📜 VIEW DOCKER LOGS
246182 @echo -e " $( YELLOW) 📜 Viewing Docker logs...$( NC) "
247183 @sudo docker-compose logs -f
248184
249- # ───────────────────────────────────────────────────────────
250- # ✅ CLEAN DOCKER IMAGES & CONTAINERS
251- # ───────────────────────────────────────────────────────────
252- docker_clean : docker_down
185+ docker_clean : docker_down # # 🗑️ CLEAN DOCKER IMAGES & CONTAINERS
253186 @echo -e " $( RED) 🗑️ Cleaning up Docker images and containers...$( NC) "
254187 @sudo docker system prune -af
255188 @echo -e " $( GREEN) ✅ Docker cleanup complete!$( NC) "
256189
257- # ───────────────────────────────────────────────────────────
258- # 🚀 CI/CD PRE-CHECK (Runs everything before deployment)
259- # ───────────────────────────────────────────────────────────
260- ci_check : env format vet lint staticcheck security_scan test
190+ ci_check : env format vet lint staticcheck security_scan test # # 🚀 CI/CD PRE-CHECK
261191 @echo -e " $( GREEN) ✅ CI/CD pre-check passed successfully!$( NC) "
262192
263193# Mark these targets as non-file targets
0 commit comments