2021-10-16 14:50:46 +00:00
|
|
|
SHELL := /bin/bash
|
|
|
|
|
2021-10-16 16:59:05 +00:00
|
|
|
VERSION=$(shell git describe --tags --abbrev=0)
|
2021-10-15 16:58:49 +00:00
|
|
|
BUILD=$(shell git rev-parse --short HEAD)
|
|
|
|
PROJ := $(shell basename "$(PWD)")
|
|
|
|
HUB=hub.kumoly.io
|
|
|
|
HUB_PROJECT=tools
|
|
|
|
|
|
|
|
LDFLAGS=-ldflags "-X main.Version=${VERSION} -X main.Build=${BUILD} -w"
|
2021-10-15 19:15:49 +00:00
|
|
|
PLATFORMS=darwin linux
|
2021-10-15 16:58:49 +00:00
|
|
|
ARCHITECTURES=amd64
|
|
|
|
|
2021-10-18 01:14:30 +00:00
|
|
|
|
|
|
|
APPS=myip myip-basic
|
2021-10-16 21:23:55 +00:00
|
|
|
|
2021-10-15 16:58:49 +00:00
|
|
|
default: build
|
|
|
|
|
|
|
|
install:
|
|
|
|
go mod tidy
|
|
|
|
go mod download
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf dist
|
|
|
|
|
2021-10-16 16:52:31 +00:00
|
|
|
.PHONY: basic
|
|
|
|
basic:
|
2021-10-16 21:23:55 +00:00
|
|
|
go build ${LDFLAGS} -o dist/${BASIC} ${BASIC_PATH}
|
2021-10-16 16:52:31 +00:00
|
|
|
|
2021-10-15 08:17:56 +00:00
|
|
|
build:
|
2021-10-16 21:23:55 +00:00
|
|
|
go build ${LDFLAGS} -o dist/${FULL} ${FULL_PATH}
|
2021-10-15 16:58:49 +00:00
|
|
|
|
2021-10-15 19:15:49 +00:00
|
|
|
build-unix:
|
2021-10-18 01:14:30 +00:00
|
|
|
$(foreach GOOS, $(PLATFORMS), $(foreach GOARCH, $(ARCHITECTURES), $(foreach APP, $(APPS),\
|
|
|
|
$(shell export GOOS=$(GOOS); export GOARCH=$(GOARCH); go build ${LDFLAGS} -o dist/$(APP) cmd/$(APP)/main.go) \
|
|
|
|
$(shell cd dist; tar -czf ${APP}_$(VERSION)_$(GOOS)_$(GOARCH).tar.gz ${APP}) \
|
|
|
|
$(shell rm dist/${APP}) \
|
|
|
|
)))
|
2021-10-16 16:52:31 +00:00
|
|
|
|
2021-10-15 19:15:49 +00:00
|
|
|
build-win:
|
2021-10-18 01:14:30 +00:00
|
|
|
$(foreach APP, $(APPS), \
|
|
|
|
$(shell export GOOS=windows; export GOARCH=amd64; go build ${LDFLAGS} -o dist/${APP}.exe cmd/$(APP)/main.go) \
|
|
|
|
$(shell cd dist; tar -czf ${APP}_$(VERSION)_windows_amd64.tar.gz ${APP}.exe) \
|
|
|
|
$(shell rm dist/${APP}.exe) \
|
|
|
|
)
|
2021-10-15 19:15:49 +00:00
|
|
|
|
|
|
|
build-mac-m1:
|
2021-10-18 01:14:30 +00:00
|
|
|
$(foreach APP, $(APPS),\
|
|
|
|
$(shell export GOOS=darwin; export GOARCH=arm64; go build ${LDFLAGS} -o dist/$(APP) cmd/$(APP)/main.go) \
|
|
|
|
$(shell cd dist; tar -czf ${APP}_$(VERSION)_darwin_arm64.tar.gz ${APP}) \
|
|
|
|
$(shell rm dist/${APP}) \
|
|
|
|
)
|
2021-10-15 18:09:42 +00:00
|
|
|
|
|
|
|
build-zip:
|
2021-10-16 14:50:46 +00:00
|
|
|
cd dist; for f in * ;do if ! [[ $$f =~ "gz" ]] ; then tar -czf $${f}.tar.gz $${f}; fi done
|
2021-10-15 16:58:49 +00:00
|
|
|
|
2021-10-15 19:15:49 +00:00
|
|
|
binary: build-unix build-win build-mac-m1
|
|
|
|
|
2021-10-15 16:58:49 +00:00
|
|
|
docker:
|
|
|
|
docker build --target builder -t $(HUB)/$(HUB_PROJECT)/$(PROJ):builder .
|
|
|
|
docker build \
|
|
|
|
-t $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION) \
|
|
|
|
.
|
|
|
|
|
2021-10-15 17:20:39 +00:00
|
|
|
docker-push:
|
2021-10-15 16:58:49 +00:00
|
|
|
docker tag $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION) $(HUB)/$(HUB_PROJECT)/$(PROJ):latest
|
|
|
|
docker push $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION)
|
|
|
|
docker push $(HUB)/$(HUB_PROJECT)/$(PROJ):latest
|
|
|
|
|
2021-10-15 17:20:39 +00:00
|
|
|
docker-save:
|
2021-10-15 18:09:42 +00:00
|
|
|
docker save $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION) | gzip > dist/$(PROJ)-image-$(VERSION)-${BUILD}.tar.gz
|
2021-10-15 10:57:15 +00:00
|
|
|
|
2021-10-15 17:20:39 +00:00
|
|
|
|
2021-10-18 01:14:30 +00:00
|
|
|
release: clean binary docker docker-save
|
|
|
|
|
2021-10-15 17:20:39 +00:00
|
|
|
|
2021-10-15 19:15:49 +00:00
|
|
|
.PHONY: build docker release clean all binary install
|