github.com/flanksource/konfigadm@v0.12.0/Makefile (about) 1 NAME:=konfigadm 2 NETLIFY_ID:=822e0cb8-b16a-430f-a25c-bebeec0c33d0 3 4 ifeq ($(VERSION),) 5 VERSION=$(shell git describe --tags --long)$(shell date +"%H%M%S") 6 endif 7 8 all: test integration 9 10 .PHONY: clean 11 clean: 12 rm *.img *.vmx *.vmdk *.qcow2 *.ova || true 13 14 .PHONY: deps 15 deps: 16 command -v go2xunit 2>&1 > /dev/null || go get github.com/tebeka/go2xunit 17 command -v esc 2>&1 > /dev/null || go get -u github.com/mjibson/esc 18 19 .PHONY: linux 20 linux: pack 21 GOOS=linux GOARCH=386 go build -o ./.bin/$(NAME) -ldflags "-X \"main.version=$(VERSION)\"" main.go 22 23 .PHONY: darwin 24 darwin: pack 25 GOOS=darwin go build -o ./.bin/$(NAME)_osx -ldflags "-X \"main.version=$(VERSION)\"" main.go 26 27 .PHONY: windows 28 windows: pack 29 GOOS=windows go build -o ./.bin/$(NAME).exe -ldflags "-X \"main.version=$(VERSION)\"" main.go 30 31 .PHONY: compress 32 compress: 33 # upx 3.95 has issues compressing darwin binaries - https://github.com/upx/upx/issues/301 34 command -v upx 2>&1 > /dev/null || (sudo apt-get update && sudo apt-get install -y xz-utils && wget -nv -O upx.tar.xz https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz; tar xf upx.tar.xz; mv upx-3.96-amd64_linux/upx /usr/bin ) 35 upx ./.bin/$(NAME) ./.bin/$(NAME)_osx ./.bin/$(NAME).exe 36 37 .PHONY: install 38 install: 39 go build -ldflags '-X main.version=$(VERSION)' -o konfigadm 40 mv konfigadm /usr/local/bin/konfigadm 41 42 .PHONY: test 43 test: deps pack 44 mkdir -p test-output 45 go test -v ./pkg/... ./cmd/... -race -coverprofile=coverage.txt -covermode=atomic | tee unit.out 46 cat unit.out | go2xunit --fail -output test-output/unit.xml 47 rm unit.out 48 49 .PHONY: integration 50 integration: linux 51 ./scripts/e2e.sh $(test) 52 53 .PHONY: e2e 54 e2e: linux 55 ./scripts/e2e.sh $(test) 56 57 .PHONY: e2e-all 58 e2e-all: deps linux debian ubuntu20 ubuntu18 ubuntu16 fedora centos 59 60 .PHONY: amazonlinux2 61 amazonlinux2: deps 62 IMAGE=quay.io/footloose/amazonlinux2:0.6.4 ./scripts/e2e.sh $(test) 63 64 .PHONY: debian9 65 debian9: deps 66 IMAGE=jrei/systemd-debian:9 ./scripts/e2e.sh $(test) 67 68 .PHONY: debian10 69 debian10: deps 70 IMAGE=quay.io/footloose/debian10:0.6.4 ./scripts/e2e.sh $(test) 71 72 .PHONY: ubuntu16 73 ubuntu16: deps 74 IMAGE=quay.io/footloose/ubuntu16.04:0.6.4 ./scripts/e2e.sh $(test) 75 76 .PHONY: ubuntu18 77 ubuntu18: deps 78 IMAGE=quay.io/footloose/ubuntu18.04:0.6.4 ./scripts/e2e.sh $(test) 79 80 .PHONY: ubuntu20 81 ubuntu20: deps 82 IMAGE=docker.io/flanksource/ubuntu:20.04 ./scripts/e2e.sh $(test) 83 84 .PHONY: fedora29 85 fedora29: deps 86 IMAGE=quay.io/footloose/fedora29:0.6.4 ./scripts/e2e.sh $(test) 87 88 .PHONY: photon3 89 photon3: deps 90 IMAGE=docker.io/tarun18/photon:3.0 ./scripts/e2e.sh $(test) 91 92 .PHONY: centos7 93 centos7: deps 94 IMAGE=quay.io/footloose/centos7:0.6.4 ./scripts/e2e.sh $(test) 95 96 .PHONY: centos8 97 centos8: deps 98 IMAGE=quay.io/footloose/centos8:latest ./scripts/e2e.sh $(test) 99 100 .PHONY: docs 101 docs: 102 command -v mkdocs 2>&1 > /dev/null || pip install mkdocs mkdocs-material 103 mkdocs build -d build/docs 104 105 .PHONY: deploy-docs 106 deploy-docs: docs 107 command -v netlify 2>&1 > /dev/null || sudo npm install -g netlify-cli 108 netlify deploy --site $(NETLIFY_ID) --prod --dir build/docs 109 110 .PHONY: pack 111 pack: 112 esc --prefix resources/ --ignore "static.go" -o resources/static.go --pkg resources resources 113 114 .PHONY: test-env 115 test-env: 116 docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup -v $(PWD):$(PWD) -w $(PWD) --rm -it quay.io/footloose/debian10:0.6.4 /lib/systemd/systemd 117 118 .PHONY: lint 119 lint: 120 command -v golangci-lint 2>&1 > /dev/null || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin 121 golangci-lint run --verbose --print-resources-usage