|
1 | 1 | export GO111MODULE=on |
2 | 2 | TOP_LEVEL=$(shell git rev-parse --show-toplevel) |
3 | 3 | COMMIT_HASH=$(shell git describe --always --tags --long) |
| 4 | +GO_VERSION=$(shell go version | awk '{print $$3}') |
4 | 5 | COMMIT=$(if $(shell git status --porcelain --untracked-files=no),$(COMMIT_HASH)-dirty,$(COMMIT_HASH)) |
5 | 6 | CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker) |
6 | 7 | PATH := bin:$(PATH) |
7 | 8 | TMPDIR := $(shell mktemp -d) |
8 | 9 | STACKER := $(shell which stacker) |
9 | 10 |
|
10 | 11 | .PHONY: all |
11 | | -all: swagger binary binary-minimal debug test test-clean check |
| 12 | +all: swagger binary binary-minimal exporter-minimal debug test test-clean check |
12 | 13 |
|
13 | 14 | .PHONY: binary-minimal |
14 | 15 | binary-minimal: swagger |
15 | | - go build -tags minimal,containers_image_openpgp -v -ldflags "-X github.com/anuvu/zot/pkg/api/config.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api.BinaryType=minimal" -o bin/zot-minimal ./cmd/zot |
| 16 | + go build -o bin/zot-minimal -tags minimal,containers_image_openpgp -v -trimpath -ldflags "-X github.com/anuvu/zot/pkg/api/config.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api/config.BinaryType=minimal -X github.com/anuvu/zot/pkg/api/config.GoVersion=${GO_VERSION}" ./cmd/zot |
16 | 17 |
|
17 | 18 | .PHONY: binary |
18 | | -binary: swagger |
19 | | - go build -tags extended,containers_image_openpgp -v -ldflags "-X github.com/anuvu/zot/pkg/api/config.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api.BinaryType=extended" -o bin/zot ./cmd/zot |
| 19 | +binary: swagger |
| 20 | + go build -o bin/zot -tags extended,containers_image_openpgp -v -trimpath -ldflags "-X github.com/anuvu/zot/pkg/api/config.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api/config.BinaryType=extended -X github.com/anuvu/zot/pkg/api/config.GoVersion=${GO_VERSION}" ./cmd/zot |
20 | 21 |
|
21 | 22 | .PHONY: debug |
22 | 23 | debug: swagger |
23 | | - go build -tags extended,containers_image_openpgp -v -gcflags all='-N -l' -ldflags "-X github.com/anuvu/zot/pkg/api.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api.BinaryType=extended" -o bin/zot-debug ./cmd/zot |
| 24 | + go build -o bin/zot-debug -tags extended,containers_image_openpgp -v -gcflags all='-N -l' -ldflags "-X github.com/anuvu/zot/pkg/api/config.Commit=${COMMIT} -X github.com/anuvu/zot/pkg/api/config.BinaryType=extended -X github.com/anuvu/zot/pkg/api/config.GoVersion=${GO_VERSION}" ./cmd/zot |
| 25 | + |
| 26 | +.PHONY: exporter-minimal |
| 27 | +exporter-minimal: swagger |
| 28 | + go build -o bin/zot-exporter -tags minimal,containers_image_openpgp -v -trimpath ./cmd/exporter |
24 | 29 |
|
25 | 30 | .PHONY: test |
26 | 31 | test: |
27 | 32 | $(shell mkdir -p test/data; cd test/data; ../scripts/gen_certs.sh; cd ${TOP_LEVEL}; sudo skopeo --insecure-policy copy -q docker://public.ecr.aws/t0x7q1g8/centos:7 oci:${TOP_LEVEL}/test/data/zot-test:0.0.1;sudo skopeo --insecure-policy copy -q docker://public.ecr.aws/t0x7q1g8/centos:8 oci:${TOP_LEVEL}/test/data/zot-cve-test:0.0.1) |
28 | 33 | $(shell sudo mkdir -p /etc/containers/certs.d/127.0.0.1:8089/; sudo cp test/data/client.* /etc/containers/certs.d/127.0.0.1:8089/; sudo cp test/data/ca.* /etc/containers/certs.d/127.0.0.1:8089/;) |
29 | 34 | $(shell sudo chmod a=rwx /etc/containers/certs.d/127.0.0.1:8089/*.key) |
30 | | - go test -tags extended,containers_image_openpgp -v -race -cover -coverpkg ./... -coverprofile=coverage.txt -covermode=atomic ./... |
| 35 | + go test -tags extended,containers_image_openpgp -v -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-extended.txt -covermode=atomic ./... |
| 36 | + go test -tags minimal,containers_image_openpgp -v -trimpath -race -cover -coverpkg ./... -coverprofile=coverage-minimal.txt -covermode=atomic ./... |
31 | 37 |
|
32 | 38 | .PHONY: test-clean |
33 | 39 | test-clean: |
34 | 40 | $(shell sudo rm -rf /etc/containers/certs.d/127.0.0.1:8089/) |
35 | 41 |
|
36 | 42 | .PHONY: covhtml |
37 | 43 | covhtml: |
| 44 | + tail -n +2 coverage-minimal.txt > tmp.txt && mv tmp.txt coverage-minimal.txt |
| 45 | + cat coverage-extended.txt coverage-minimal.txt > coverage.txt |
38 | 46 | go tool cover -html=coverage.txt -o coverage.html |
39 | 47 |
|
40 | 48 | .PHONY: check |
41 | 49 | check: ./golangcilint.yaml |
42 | 50 | golangci-lint --version || curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.26.0 |
43 | | - golangci-lint --config ./golangcilint.yaml run --enable-all --build-tags extended,containers_image_openpgp ./cmd/... ./pkg/... |
| 51 | + golangci-lint --config ./golangcilint.yaml run --enable-all --build-tags extended,containers_image_openpgp ./... |
| 52 | + golangci-lint --config ./golangcilint.yaml run --enable-all --build-tags minimal,containers_image_openpgp ./... |
44 | 53 |
|
45 | 54 | swagger/docs.go: |
46 | 55 | swag -v || go install github.com/swaggo/swag/cmd/swag |
|
0 commit comments