67 lines
1.4 KiB
Makefile
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)
|