59 lines
1.6 KiB
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)
|