clavitor/clavis/clavis-vault/Makefile

48 lines
1.3 KiB
Makefile

GO := /usr/local/go/bin/go
BINARY := clavitor
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown)
DATE := $(shell date -u +%Y%m%d-%H%M)
LDFLAGS := -s -w -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.buildDate=$(DATE)
# Deploy targets
REMOTE := clavitor-hq
REMOTE_PATH := /opt/clavitor/bin
export GOFIPS140 := latest
# --- Build targets ---
.PHONY: build build-all linux-amd64 linux-arm64 release test clean deploy
build: linux-amd64
build-all: linux-amd64 linux-arm64
linux-amd64:
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
$(GO) build -ldflags "$(LDFLAGS)" -o $(BINARY)-linux-amd64 ./cmd/clavitor
linux-arm64:
CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC=aarch64-linux-gnu-gcc \
$(GO) build -ldflags "$(LDFLAGS)" -o $(BINARY)-linux-arm64 ./cmd/clavitor
release:
./scripts/release.sh
test:
$(GO) test ./...
clean:
rm -f $(BINARY)-linux-amd64 $(BINARY)-linux-arm64
# --- Deploy ---
deploy: linux-amd64
scp $(BINARY)-linux-amd64 $(REMOTE):/tmp/$(BINARY)-new
ssh $(REMOTE) 'sudo systemctl stop clavitor && mv /tmp/$(BINARY)-new $(REMOTE_PATH)/$(BINARY) && chmod +x $(REMOTE_PATH)/$(BINARY) && sudo systemctl start clavitor'
@echo "Deployed. Verifying..."
@sleep 2
@ssh $(REMOTE) 'sudo systemctl is-active clavitor'