toktok/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)