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