Files
billit/Makefile
2025-12-06 15:31:18 +05:30

67 lines
1.4 KiB
Makefile

# ============================================
# BILLIT - Makefile
# ============================================
.PHONY: all build run dev clean scss scss-watch test docker-build docker-run
# Variables
APP_NAME := billit
MAIN_PATH := ./cmd/server
SCSS_DIR := web/assets/scss
CSS_DIR := web/assets/css
# Default target
all: scss build
# Build the application
build:
@echo "Building $(APP_NAME)..."
go build -o bin/$(APP_NAME) $(MAIN_PATH)
# Run the application
run: scss
@echo "Running $(APP_NAME)..."
go run $(MAIN_PATH)
# Development mode with hot reload
dev:
@echo "Starting development server..."
air
# Compile SCSS to CSS
scss:
@echo "Compiling SCSS..."
sass $(SCSS_DIR)/main.scss $(CSS_DIR)/output.css --style=compressed
# Watch SCSS for changes
scss-watch:
@echo "Watching SCSS for changes..."
sass $(SCSS_DIR)/main.scss $(CSS_DIR)/output.css --style=compressed --watch
# Clean build artifacts
clean:
@echo "Cleaning..."
rm -rf bin/
rm -f $(CSS_DIR)/output.css
rm -f $(CSS_DIR)/output.css.map
# Run tests
test:
@echo "Running tests..."
go test ./...
# Docker build
docker-build: scss
@echo "Building Docker image..."
docker compose -f compose.build.yml build
# Docker run
docker-run:
@echo "Running Docker container..."
docker compose up
# Build for production
release: scss
@echo "Building for production..."
CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -o bin/$(APP_NAME) $(MAIN_PATH)