mirror of
https://github.com/Dvorinka/Devour.git
synced 2026-07-29 07:33:48 +00:00
first commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
.PHONY: build test lint clean install run docker
|
||||
|
||||
# Binary name
|
||||
BINARY=devour
|
||||
MAIN_PATH=./cmd/devour
|
||||
|
||||
# Go parameters
|
||||
GOCMD=go
|
||||
GOBUILD=$(GOCMD) build
|
||||
GOCLEAN=$(GOCMD) clean
|
||||
GOTEST=$(GOCMD) test
|
||||
GOGET=$(GOCMD) get
|
||||
GOMOD=$(GOCMD) mod
|
||||
|
||||
# Build flags
|
||||
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
||||
BUILD_TIME=$(shell date -u '+%Y-%m-%d_%H:%M:%S')
|
||||
LDFLAGS=-ldflags "-s -w -X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME)"
|
||||
|
||||
# Default target
|
||||
all: clean build
|
||||
|
||||
## build: Build the binary
|
||||
build:
|
||||
$(GOBUILD) $(LDFLAGS) -o $(BINARY) $(MAIN_PATH)
|
||||
|
||||
## build-prod: Build optimized production binary
|
||||
build-prod:
|
||||
CGO_ENABLED=0 $(GOBUILD) $(LDFLAGS) -o $(BINARY) $(MAIN_PATH)
|
||||
|
||||
## test: Run tests
|
||||
test:
|
||||
$(GOTEST) -v ./...
|
||||
|
||||
## test-coverage: Run tests with coverage
|
||||
test-coverage:
|
||||
$(GOTEST) -coverprofile=coverage.out ./...
|
||||
$(GOCMD) tool cover -html=coverage.out -o coverage.html
|
||||
|
||||
## lint: Run linter
|
||||
lint:
|
||||
@which golangci-lint > /dev/null || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
golangci-lint run ./...
|
||||
|
||||
## fmt: Format code
|
||||
fmt:
|
||||
$(GOCMD) fmt ./...
|
||||
|
||||
## clean: Clean build artifacts
|
||||
clean:
|
||||
$(GOCLEAN)
|
||||
rm -f $(BINARY)
|
||||
rm -f coverage.out coverage.html
|
||||
|
||||
## install: Install binary to GOPATH/bin
|
||||
install:
|
||||
$(GOCMD) install $(MAIN_PATH)
|
||||
|
||||
## run: Run the application
|
||||
run:
|
||||
$(GOCMD) run $(MAIN_PATH)
|
||||
|
||||
## deps: Download dependencies
|
||||
deps:
|
||||
$(GOMOD) download
|
||||
$(GOMOD) tidy
|
||||
|
||||
## docker: Build Docker image
|
||||
docker:
|
||||
docker build -t devour:latest .
|
||||
|
||||
## docker-run: Run Docker container
|
||||
docker-run:
|
||||
docker run -it --rm \
|
||||
-e OPENAI_API_KEY=$(OPENAI_API_KEY) \
|
||||
-v $(PWD)/devour_data:/app/devour_data \
|
||||
devour:latest
|
||||
|
||||
## help: Show this help
|
||||
help:
|
||||
@echo 'Usage: make [target]'
|
||||
@echo ''
|
||||
@echo 'Targets:'
|
||||
@sed -n 's/^##//p' $(MAKEFILE_LIST) | column -t -s ':'
|
||||
Reference in New Issue
Block a user