|
1 | 1 | # Version and linker flags |
2 | 2 | # This will return either the current tag, branch, or commit hash of this repo. |
3 | | -MODULE := $(shell awk 'NR==1{print $$2}' go.mod) |
4 | | -REPO_NAME := cloudflare-ddns |
5 | | -VERSION := $(shell echo $$(ver=$$(git tag -l --points-at HEAD) && [ -z $$ver ] && ver=$$(git describe --always --dirty); printf $$ver)) |
6 | | -LDFLAGS := -s -w -X $(MODULE)/conf.Version=$(VERSION) -X $(MODULE)/conf.ModuleName=$(MODULE) |
7 | | -FLAGS := -trimpath |
8 | | -PROJECT_ROOT := $(shell cd -P -- '$(shell dirname -- "$0")' && pwd -P) |
9 | | -BIN_NAME := cloudflare-ddns |
10 | | -DIST := dist |
11 | | -UNAME := $(shell uname) |
12 | | -GOTESTSUM := go run gotest.tools/gotestsum |
13 | | -GOVERALLS := go run github.com/mattn/goveralls |
14 | | -SOURCE := $(shell find $(PROJECT_ROOT) -name '*.go') |
15 | | -BINS := $(shell find $(DIST) -name '$(BIN_NAME)-*') |
16 | | -PLATFORMS ?= darwin-amd64 dragonfly-amd64 freebsd-amd64 freebsd-arm freebsd-arm64 linux-amd64 linux-arm linux-arm64 netbsd-amd64 netbsd-arm netbsd-arm64 openbsd-amd64 openbsd-arm openbsd-arm64 windows-amd64 windows-arm |
| 3 | +MODULE := $(shell awk 'NR==1{print $$2}' go.mod) |
| 4 | +REPO_NAME := cloudflare-ddns |
| 5 | +VERSION := $(shell echo $$(ver=$$(git tag -l --points-at HEAD) && [ -z $$ver ] && ver=$$(git describe --always --dirty); printf $$ver)) |
| 6 | +# This is set during CI in .github/workflows/release.yml |
| 7 | +RELEASE_VERSION ?= $(VERSION) |
| 8 | +LDFLAGS := -s -w -X $(MODULE)/conf.Version=$(VERSION) -X $(MODULE)/conf.ModuleName=$(MODULE) |
| 9 | +FLAGS := -trimpath |
| 10 | +PROJECT_ROOT := $(shell cd -P -- '$(shell dirname -- "$0")' && pwd -P) |
| 11 | +BIN_NAME := cloudflare-ddns |
| 12 | +DIST := dist |
| 13 | +UNAME := $(shell uname) |
| 14 | +GOTESTSUM := go run gotest.tools/gotestsum |
| 15 | +GOVERALLS := go run github.com/mattn/goveralls |
| 16 | +SOURCE := $(shell find $(PROJECT_ROOT) -name '*.go') |
| 17 | +BINS := $(shell find $(DIST) -name '$(BIN_NAME)-*') |
| 18 | +PLATFORMS ?= darwin-amd64 dragonfly-amd64 freebsd-amd64 freebsd-arm freebsd-arm64 linux-amd64 linux-arm linux-arm64 netbsd-amd64 netbsd-arm netbsd-arm64 openbsd-amd64 openbsd-arm openbsd-arm64 windows-amd64 windows-arm |
| 19 | +DOCKER_PLATFORMS ?= linux/amd64 linux/arm64 |
| 20 | +DOCKER_REPO ?= mattolenik |
| 21 | +DOCKER_TAG ?= $(DOCKER_REPO)/cloudflare-ddns-client |
| 22 | +DOCKER_TAG_LATEST := $(DOCKER_TAG):latest |
| 23 | +DOCKER_TAG_VERSIONED := $(DOCKER_TAG):$(RELEASE_VERSION) |
17 | 24 |
|
18 | 25 | export TEST_BINARY := $(DIST)/$(BIN_NAME) |
19 | 26 |
|
20 | | -default: all shasums test readme |
| 27 | +default: all shasums readme test |
21 | 28 |
|
22 | 29 | build: $(DIST)/$(BIN_NAME) |
23 | 30 | $(DIST)/$(BIN_NAME): $(SOURCE) |
24 | 31 | go build $(ARGS) $(FLAGS) -ldflags="$(LDFLAGS)" -o $@ |
25 | 32 |
|
26 | 33 | all: $(addprefix $(DIST)/$(BIN_NAME)-,$(PLATFORMS)) |
27 | 34 |
|
| 35 | +docker-publish: |
| 36 | + docker buildx build --push --tag $(DOCKER_TAG_LATEST) --tag $(DOCKER_TAG_VERSIONED) --platform linux/amd64,linux/arm64 . |
| 37 | + |
28 | 38 | clean: |
29 | 39 | rm -rf dist && mkdir dist |
30 | 40 |
|
|
0 commit comments