Files
yoink-go/Makefile

59 lines
1.6 KiB
Makefile

BIN := yoink
BUILD_DIR := build
REGISTRY := git.brizzle.dev/bryan/yoink-go
VERSION ?= $(shell git describe --tags --always --dirty)
NOTES ?= ""
.PHONY: all windows linux darwin clean docker-build docker-push tag gitea-release release
all: windows linux darwin
windows:
GOOS=windows GOARCH=amd64 go build -o $(BUILD_DIR)/$(BIN)-windows-amd64.exe
linux:
GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/$(BIN)-linux-amd64
GOOS=linux GOARCH=arm64 go build -o $(BUILD_DIR)/$(BIN)-linux-arm64
darwin:
GOOS=darwin GOARCH=amd64 go build -o $(BUILD_DIR)/$(BIN)-darwin-amd64
GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/$(BIN)-darwin-arm64
docker-build:
podman build --no-cache --format docker \
-t $(REGISTRY):$(VERSION) \
-t $(REGISTRY):latest \
.
docker-push: docker-build
podman push $(REGISTRY):$(VERSION)
podman push $(REGISTRY):latest
tag:
@if [ -z "$(VERSION)" ]; then echo "Usage: make tag VERSION=1.2.0"; exit 1; fi
git tag $(VERSION)
git tag -f latest
git push origin $(VERSION)
git push origin -f latest
gitea-release:
tea release create \
--tag $(VERSION) \
--title "$(VERSION)" \
$(if $(NOTES),--note $(NOTES),) \
--asset $(BUILD_DIR)/$(BIN)-windows-amd64.exe \
--asset $(BUILD_DIR)/$(BIN)-linux-amd64 \
--asset $(BUILD_DIR)/$(BIN)-linux-arm64 \
--asset $(BUILD_DIR)/$(BIN)-darwin-amd64 \
--asset $(BUILD_DIR)/$(BIN)-darwin-arm64
release:
@if [ -z "$(VERSION)" ]; then echo "Usage: make release VERSION=1.3.0 NOTES='...'"; exit 1; fi
$(MAKE) tag VERSION=$(VERSION)
$(MAKE) clean all
$(MAKE) gitea-release VERSION=$(VERSION) NOTES=$(NOTES)
$(MAKE) docker-push VERSION=$(VERSION)
clean:
rm -rf $(BUILD_DIR)