Makefile 2.3 KB
Newer Older
LinuxSuRen's avatar
LinuxSuRen 已提交
1 2 3 4
NAME := jcli
CGO_ENABLED = 0
GO := go
BUILD_TARGET = build
LinuxSuRen's avatar
LinuxSuRen 已提交
5 6
COMMIT := $(shell git rev-parse --short HEAD)
VERSION := dev-$(shell git describe --tags $(shell git rev-list --tags --max-count=1))
7
BUILDFLAGS = -ldflags "-X github.com/jenkins-zh/jenkins-cli/app.version=$(VERSION) -X github.com/jenkins-zh/jenkins-cli/app.commit=$(COMMIT)"
LinuxSuRen's avatar
LinuxSuRen 已提交
8 9
COVERED_MAIN_SRC_FILE=./main

10 11 12 13 14 15 16
gen-mock:
	go get github.com/golang/mock/gomock
	go install github.com/golang/mock/mockgen
	mockgen -destination ./mock/mhttp/roundtripper.go -package mhttp net/http RoundTripper

init: gen-mock

LinuxSuRen's avatar
LinuxSuRen 已提交
17
darwin: ## Build for OSX
LinuxSuRen's avatar
LinuxSuRen 已提交
18
	GO111MODULE=on CGO_ENABLED=$(CGO_ENABLED) GOOS=darwin GOARCH=amd64 $(GO) $(BUILD_TARGET) $(BUILDFLAGS) -o bin/darwin/$(NAME) $(MAIN_SRC_FILE)
LinuxSuRen's avatar
LinuxSuRen 已提交
19 20
	chmod +x bin/darwin/$(NAME)

LinuxSuRen's avatar
LinuxSuRen 已提交
21 22 23
linux: ## Build for linux
	CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GOARCH=amd64 $(GO) $(BUILD_TARGET) $(BUILDFLAGS) -o bin/linux/$(NAME) $(MAIN_SRC_FILE)
	chmod +x bin/linux/$(NAME)
LinuxSuRen's avatar
LinuxSuRen 已提交
24

LinuxSuRen's avatar
LinuxSuRen 已提交
25 26 27 28 29 30 31 32
win: ## Build for windows
	go get github.com/inconshreveable/mousetrap
	go get github.com/mattn/go-isatty
	CGO_ENABLED=$(CGO_ENABLED) GOOS=windows GOARCH=386 $(GO) $(BUILD_TARGET) $(BUILDFLAGS) -o bin/windows/$(NAME).exe $(MAIN_SRC_FILE)

build-all: darwin linux win

release: clean build-all
LinuxSuRen's avatar
LinuxSuRen 已提交
33
	mkdir release
LinuxSuRen's avatar
LinuxSuRen 已提交
34 35 36
	cd ./bin/darwin; upx jcli; tar -zcvf ../../release/jcli-darwin-amd64.tar.gz jcli; cd ../../release/; shasum -a 256 jcli-darwin-amd64.tar.gz > jcli-darwin-amd64.txt
	cd ./bin/linux; upx jcli; tar -zcvf ../../release/jcli-linux-amd64.tar.gz jcli; cd ../../release/; shasum -a 256 jcli-linux-amd64.tar.gz > jcli-linux-amd64.txt
	cd ./bin/windows; upx jcli.exe; tar -zcvf ../../release/jcli-windows-386.tar.gz jcli.exe; cd ../../release/; shasum -a 256 jcli-windows-386.tar.gz > jcli-windows-386.txt
LinuxSuRen's avatar
LinuxSuRen 已提交
37 38

clean: ## Clean the generated artifacts
LinuxSuRen's avatar
LinuxSuRen 已提交
39
	rm -rf bin release
LinuxSuRen's avatar
LinuxSuRen 已提交
40 41 42 43
	rm -rf coverage.out
	rm -rf app/cmd/test-app.xml
	rm -rf app/test-app.xml
	rm -rf util/test-utils.xml
LinuxSuRen's avatar
LinuxSuRen 已提交
44

45 46 47
copy: darwin
	sudo cp bin/darwin/$(NAME) $(shell which jcli)

LinuxSuRen's avatar
LinuxSuRen 已提交
48 49 50 51 52
tools:
	go get -u golang.org/x/lint/golint

verify:
	go vet ./...
LinuxSuRen's avatar
LinuxSuRen 已提交
53
	golint -set_exit_status ./...
LinuxSuRen's avatar
LinuxSuRen 已提交
54 55

test: verify
56 57
	mkdir -p bin
	go test ./... -v -coverprofile coverage.out
LinuxSuRen's avatar
LinuxSuRen 已提交
58

LinuxSuRen's avatar
LinuxSuRen 已提交
59 60
dep:
	go get github.com/AlecAivazis/survey/v2
LinuxSuRen's avatar
LinuxSuRen 已提交
61 62 63 64
	go get github.com/gosuri/uiprogress
	go get github.com/spf13/cobra
	go get github.com/spf13/viper
	go get gopkg.in/yaml.v2
LinuxSuRen's avatar
LinuxSuRen 已提交
65
	go get github.com/Pallinder/go-randomdata