tetragon
/
Makefile.cli
51 строка · 1.5 Кб
1# SPDX-License-Identifier: Apache-2.0
2# Copyright Authors of Tetragon
3
4CLI_GO_BUILD = CGO_ENABLED=0 $(GO) build
5# renovate: datasource=docker
6GO_IMAGE = docker.io/library/golang:1.22.5-alpine@sha256:8c9183f715b0b4eca05b8b3dbf59766aaedb41ec07477b132ee2891ac0110a07
7TARGET=tetra
8
9RELEASE_UID ?= $(shell id -u)
10RELEASE_GID ?= $(shell id -g)
11
12cli-release:
13docker run \
14--rm \
15--workdir /tetragon \
16--volume `pwd`:/tetragon $(GO_IMAGE) \
17sh -c "apk add --no-cache make git setpriv && \
18/usr/bin/setpriv --reuid=$(RELEASE_UID) --regid=$(RELEASE_GID) --clear-groups \
19make GOCACHE=/tmp/cache cli-local-release VERSION=${VERSION}"
20
21cli-local-release: cli-clean
22set -o errexit; \
23for OS in darwin linux windows; do \
24EXT=; \
25ARCHS=; \
26case $$OS in \
27darwin) \
28ARCHS='arm64 amd64'; \
29;; \
30linux) \
31ARCHS='arm64 amd64'; \
32;; \
33windows) \
34ARCHS='arm64 amd64'; \
35EXT='.exe'; \
36;; \
37esac; \
38for ARCH in $$ARCHS; do \
39echo Building release binary for $$OS/$$ARCH...; \
40test -d release/$$OS/$$ARCH|| mkdir -p release/$$OS/$$ARCH; \
41env GOOS=$$OS GOARCH=$$ARCH $(CLI_GO_BUILD) -ldflags="$(GO_BUILD_LDFLAGS)" -o release/$$OS/$$ARCH/$(TARGET)$$EXT ./cmd/tetra; \
42tar -czf release/$(TARGET)-$$OS-$$ARCH.tar.gz -C release/$$OS/$$ARCH $(TARGET)$$EXT; \
43(cd release && sha256sum $(TARGET)-$$OS-$$ARCH.tar.gz > $(TARGET)-$$OS-$$ARCH.tar.gz.sha256sum); \
44done; \
45rm -r release/$$OS; \
46done; \
47
48cli-clean:
49rm -rf ./release
50
51.PHONY: cli-release cli-local-release
52