70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Makefile
		
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Makefile
		
	
	
| VERSION=$(shell git describe --tags --abbrev=0)
 | |
| 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"
 | |
| PLATFORMS=darwin linux
 | |
| ARCHITECTURES=amd64
 | |
| APPS=configui
 | |
| 
 | |
| default: build
 | |
| 
 | |
| install:
 | |
| 	npm install
 | |
| 
 | |
| clean:
 | |
| 	rm -rf dist
 | |
| 
 | |
| run: build
 | |
| 	$(shell cd dist; ./${PROJ} -log configui.log)
 | |
| 
 | |
| .PHONY: build
 | |
| build:
 | |
| 	npm run build
 | |
| 	go build ${LDFLAGS} -o dist/${PROJ}
 | |
| 
 | |
| 
 | |
| build-unix:
 | |
| 	$(foreach GOOS, $(PLATFORMS), $(foreach GOARCH, $(ARCHITECTURES), $(foreach APP, $(APPS),\
 | |
| 	$(shell export GOOS=$(GOOS); export GOARCH=$(GOARCH); go build ${LDFLAGS} -o dist/$(APP)) \
 | |
| 	$(shell cd dist; tar -czf ${APP}_$(VERSION)_$(GOOS)_$(GOARCH).tar.gz ${APP}) \
 | |
| 	$(shell rm dist/${APP}) \
 | |
| 	)))
 | |
| 
 | |
| build-win:
 | |
| 	$(foreach APP, $(APPS), \
 | |
| 	$(shell export GOOS=windows; export GOARCH=amd64; go build ${LDFLAGS} -o dist/${APP}.exe) \
 | |
| 	$(shell cd dist; tar -czf ${APP}_$(VERSION)_windows_amd64.tar.gz ${APP}.exe) \
 | |
| 	$(shell rm dist/${APP}.exe) \
 | |
| 	)
 | |
| 
 | |
| build-mac-m1:
 | |
| 	$(foreach APP, $(APPS),\
 | |
| 	$(shell export GOOS=darwin; export GOARCH=arm64; go build ${LDFLAGS} -o dist/$(APP)) \
 | |
| 	$(shell cd dist; tar -czf ${APP}_$(VERSION)_darwin_arm64.tar.gz ${APP}) \
 | |
| 	$(shell rm dist/${APP}) \
 | |
| 	)
 | |
| 
 | |
| .PHONY: binary
 | |
| binary: build-unix build-win build-mac-m1
 | |
| 
 | |
| .PHONY: docker
 | |
| docker:
 | |
| 	docker build --target builder -t $(HUB)/$(HUB_PROJECT)/$(PROJ):builder .
 | |
| 	docker build \
 | |
| 	-t $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION) \
 | |
| 	.
 | |
| 
 | |
| docker-push:
 | |
| 	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
 | |
| 
 | |
| docker-save:
 | |
| 	docker save $(HUB)/$(HUB_PROJECT)/$(PROJ):$(VERSION) | gzip > dist/$(PROJ)-image-$(VERSION)-${BUILD}.tar.gz
 | |
| 
 | |
| 
 | |
| .PHONY: release
 | |
| release: clean binary docker docker-save |