62 lines
1.0 KiB
Makefile
62 lines
1.0 KiB
Makefile
.PHONY: all build run test clean docker-build docker-up docker-down
|
|
|
|
# Go parameters
|
|
GOCMD=go
|
|
GOBUILD=$(GOCMD) build
|
|
GOCLEAN=$(GOCMD) clean
|
|
GOTEST=$(GOCMD) test
|
|
GOGET=$(GOCMD) get
|
|
|
|
# Binary name
|
|
BINARY_NAME=toktok
|
|
BINARY_UNIX=$(BINARY_NAME)_unix
|
|
|
|
# Main package
|
|
MAIN_PACKAGE=./cmd/server
|
|
|
|
all: test build
|
|
|
|
build:
|
|
$(GOBUILD) -o $(BINARY_NAME) $(MAIN_PACKAGE)
|
|
|
|
run:
|
|
$(GOBUILD) -o $(BINARY_NAME) $(MAIN_PACKAGE)
|
|
./$(BINARY_NAME)
|
|
|
|
test:
|
|
$(GOTEST) -v ./...
|
|
|
|
clean:
|
|
$(GOCLEAN)
|
|
rm -f $(BINARY_NAME)
|
|
rm -rf data/
|
|
|
|
# Cross compilation
|
|
build-linux:
|
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_UNIX) $(MAIN_PACKAGE)
|
|
|
|
# Docker
|
|
docker-build:
|
|
docker build -t toktok:latest .
|
|
|
|
docker-up:
|
|
docker-compose up -d
|
|
|
|
docker-down:
|
|
docker-compose down
|
|
|
|
docker-logs:
|
|
docker-compose logs -f
|
|
|
|
# Development
|
|
dev:
|
|
go run $(MAIN_PACKAGE)/main.go
|
|
|
|
# Database
|
|
db-migrate:
|
|
@echo "Run migrations if needed"
|
|
|
|
# Config
|
|
config-check:
|
|
@echo "Checking config..."
|
|
@test -f config/config.yaml || (echo "config/config.yaml not found" && exit 1)
|