freeleaps-ops/apps/gitea-webhook-ambassador/Makefile
zhenyus 60817c1be4 feat: add gitea-webhook-ambassador service and migration script
Signed-off-by: zhenyus <zhenyus@mathmast.com>
2025-03-30 23:37:19 +08:00

68 lines
1.9 KiB
Makefile

.PHONY: build clean test lint docker-build docker-push run help
# Variables
APP_NAME := gitea-webhook-ambassador
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
LDFLAGS := -ldflags "-X main.version=$(VERSION) -s -w"
GO_FILES := $(shell find . -name "*.go" -type f)
IMAGE_NAME := freeleaps/$(APP_NAME)
IMAGE_TAG := $(VERSION)
CONFIG_FILE := config.yaml
# Go commands
GO := go
GOFMT := gofmt
GOTEST := $(GO) test
GOBUILD := $(GO) build
# Default target
.DEFAULT_GOAL := help
# Build executable
build: $(GO_FILES)
@echo "Building $(APP_NAME)..."
$(GOBUILD) $(LDFLAGS) -o $(APP_NAME) .
# Clean build artifacts
clean:
@echo "Cleaning up..."
@rm -f $(APP_NAME)
@rm -rf build/
# Run tests
test:
@echo "Running tests..."
$(GOTEST) -v ./...
# Run linter
lint:
@which golangci-lint > /dev/null || (echo "Installing golangci-lint..." && go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest)
golangci-lint run
# Build Docker image
docker-build:
@echo "Building Docker image $(IMAGE_NAME):$(IMAGE_TAG)..."
docker build -t $(IMAGE_NAME):$(IMAGE_TAG) .
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_NAME):latest
# Push Docker image to registry
docker-push: docker-build
@echo "Pushing Docker image $(IMAGE_NAME):$(IMAGE_TAG)..."
docker push $(IMAGE_NAME):$(IMAGE_TAG)
docker push $(IMAGE_NAME):latest
# Run locally
run: build
./$(APP_NAME) -config=$(CONFIG_FILE)
# Show help
help:
@echo "Gitea Webhook Ambassador - Makefile commands:"
@echo " build - Build the application"
@echo " clean - Remove build artifacts"
@echo " test - Run tests"
@echo " lint - Run linter"
@echo " docker-build - Build Docker image"
@echo " docker-push - Build and push Docker image to registry"
@echo " run - Build and run locally"
@echo " help - Show this help message"