mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-13 03:42:35 -06:00
d6b5659856
Some things added on this branch: - icons and client logos at known paths - some spam redirects - some redirects for docs/latest/foo /docs/foo - redirects for the two ‘moved’ pages (k8s and envoy intros) I am going to be monitoring the traffic this week on Netlify to make sure we have a good coverage with redirects where needed. We also now prompt users to file issues directly from the 404 pages which should help flag things we miss too.
566 lines
16 KiB
Makefile
566 lines
16 KiB
Makefile
# Copyright 2016 The OPA Authors. All rights reserved.
|
|
# Use of this source code is governed by an Apache2
|
|
# license that can be found in the LICENSE file.
|
|
|
|
VERSION := $(shell ./build/get-build-version.sh)
|
|
|
|
CGO_ENABLED ?= 1
|
|
WASM_ENABLED ?= 1
|
|
GOFLAGS ?= "-buildmode=exe"
|
|
|
|
# See https://golang.org/cmd/go/#hdr-Build_modes:
|
|
# > -buildmode=exe
|
|
# > Build the listed main packages and everything they import into
|
|
# > executables. Packages not named main are ignored.
|
|
GO := CGO_ENABLED=$(CGO_ENABLED) GOFLAGS="$(GOFLAGS)" go
|
|
GO_TEST_TIMEOUT := -timeout 30m
|
|
|
|
GOVERSION ?= $(shell cat ./.go-version)
|
|
GOARCH := $(shell go env GOARCH)
|
|
GOOS := $(shell go env GOOS)
|
|
|
|
ifeq ($(GOOS)/$(GOARCH),darwin/arm64)
|
|
WASM_ENABLED=0
|
|
endif
|
|
|
|
GO_TAGS := -tags=
|
|
ifeq ($(WASM_ENABLED),1)
|
|
GO_TAGS = -tags=opa_wasm
|
|
endif
|
|
|
|
GOLANGCI_LINT_VERSION := v1.64.5
|
|
YAML_LINT_VERSION := 0.29.0
|
|
YAML_LINT_FORMAT ?= auto
|
|
|
|
DOCKER_RUNNING ?= $(shell docker ps >/dev/null 2>&1 && echo 1 || echo 0)
|
|
|
|
# We use root because the windows build, invoked through the ci-go-build-windows
|
|
# target, installs the gcc mingw32 cross-compiler.
|
|
# For image, it's overridden, so that the built binary isn't root-owned.
|
|
DOCKER_UID ?= 0
|
|
DOCKER_GID ?= 0
|
|
|
|
ifeq ($(shell tty > /dev/null && echo 1 || echo 0), 1)
|
|
DOCKER_FLAGS := --rm -it
|
|
else
|
|
DOCKER_FLAGS := --rm
|
|
endif
|
|
|
|
DOCKER := docker
|
|
|
|
# BuildKit is required for automatic platform arg injection (see Dockerfile)
|
|
export DOCKER_BUILDKIT := 1
|
|
|
|
# Supported platforms to include in image manifest lists
|
|
DOCKER_PLATFORMS := linux/amd64
|
|
DOCKER_PLATFORMS_STATIC := linux/amd64,linux/arm64
|
|
|
|
BIN := opa_$(GOOS)_$(GOARCH)
|
|
|
|
# Optional external configuration useful for forks of OPA
|
|
DOCKER_IMAGE ?= openpolicyagent/opa
|
|
S3_RELEASE_BUCKET ?= opa-releases
|
|
FUZZ_TIME ?= 1h
|
|
TELEMETRY_URL ?= #Default empty
|
|
|
|
BUILD_HOSTNAME := $(shell ./build/get-build-hostname.sh)
|
|
|
|
RELEASE_BUILD_IMAGE := golang:$(GOVERSION)-bullseye
|
|
|
|
RELEASE_DIR ?= _release/$(VERSION)
|
|
|
|
ifneq (,$(TELEMETRY_URL))
|
|
TELEMETRY_FLAG := -X github.com/open-policy-agent/opa/internal/report.ExternalServiceURL=$(TELEMETRY_URL)
|
|
endif
|
|
|
|
LDFLAGS := "$(TELEMETRY_FLAG) \
|
|
-X github.com/open-policy-agent/opa/version.Hostname=$(BUILD_HOSTNAME)"
|
|
|
|
|
|
######################################################
|
|
#
|
|
# Development targets
|
|
#
|
|
######################################################
|
|
|
|
# If you update the 'all' target make sure the 'ci-release-test' target is consistent.
|
|
.PHONY: all
|
|
all: build test perf wasm-sdk-e2e-test check
|
|
|
|
.PHONY: version
|
|
version:
|
|
@echo $(VERSION)
|
|
|
|
.PHONY: release-dir
|
|
release-dir:
|
|
@echo $(RELEASE_DIR)
|
|
|
|
.PHONY: generate
|
|
generate: wasm-lib-build
|
|
ifeq ($(GOOS),windows)
|
|
GOOS=$(shell go env GOOS) GOARCH=$(shell go env GOARCH) go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.5.0
|
|
endif
|
|
$(GO) generate
|
|
|
|
.PHONY: build
|
|
build: go-build
|
|
|
|
.PHONY: image
|
|
image:
|
|
DOCKER_UID=$(shell id -u) DOCKER_GID=$(shell id -g) $(MAKE) ci-go-ci-build-linux ci-go-ci-build-linux-static
|
|
@$(MAKE) image-quick
|
|
|
|
.PHONY: install
|
|
install: generate
|
|
$(GO) install $(GO_TAGS) -ldflags $(LDFLAGS)
|
|
|
|
.PHONY: test
|
|
test: go-test wasm-test
|
|
|
|
.PHONY: test-short
|
|
test-short: go-test-short
|
|
|
|
.PHONY: go-build
|
|
go-build: generate
|
|
$(GO) build $(GO_TAGS) -o $(BIN) -ldflags $(LDFLAGS)
|
|
|
|
.PHONY: go-test
|
|
go-test: generate
|
|
$(GO) test $(GO_TAGS),slow ./...
|
|
|
|
.PHONY: go-test-short
|
|
go-test-short: generate
|
|
$(GO) test $(GO_TAGS) -short ./...
|
|
|
|
.PHONY: race-detector
|
|
race-detector: generate
|
|
$(GO) test $(GO_TAGS),slow -race -vet=off ./...
|
|
|
|
.PHONY: test-coverage
|
|
test-coverage: generate
|
|
$(GO) test $(GO_TAGS),slow -coverprofile=coverage.txt -covermode=atomic ./...
|
|
|
|
.PHONY: perf
|
|
perf: generate
|
|
$(GO) test $(GO_TAGS),slow $(GO_TEST_TIMEOUT) -run=- -bench=. -benchmem ./...
|
|
|
|
.PHONY: perf-noisy
|
|
perf-noisy: generate
|
|
$(GO) test $(GO_TAGS),slow,noisy $(GO_TEST_TIMEOUT) -run=- -bench=. -benchmem ./...
|
|
|
|
.PHONY: wasm-sdk-e2e-test
|
|
wasm-sdk-e2e-test: generate
|
|
$(GO) test $(GO_TAGS),slow,wasm_sdk_e2e $(GO_TEST_TIMEOUT) ./internal/wasm/sdk/test/e2e
|
|
|
|
.PHONY: check
|
|
check:
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
docker run --rm -v $(shell pwd):/app:ro,Z -w /app golangci/golangci-lint:${GOLANGCI_LINT_VERSION} golangci-lint run -v
|
|
else
|
|
@echo "Docker not installed or running. Skipping golangci run."
|
|
endif
|
|
|
|
.PHONY: fmt
|
|
fmt:
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
docker run --rm -v $(shell pwd):/app:Z -w /app golangci/golangci-lint:${GOLANGCI_LINT_VERSION} golangci-lint run -v --fix
|
|
else
|
|
@echo "Docker not installed or running. Skipping golangci run."
|
|
endif
|
|
|
|
.PHONY: clean
|
|
clean: wasm-lib-clean
|
|
rm -f opa_*_*
|
|
|
|
.PHONY: fuzz
|
|
fuzz:
|
|
go test ./ast -fuzz FuzzParseStatementsAndCompileModules -fuzztime ${FUZZ_TIME} -v -run '^$$'
|
|
|
|
######################################################
|
|
#
|
|
# Documentation targets
|
|
#
|
|
######################################################
|
|
|
|
# The docs-% pattern target will shim to the
|
|
# makefile in ./docs
|
|
.PHONY: docs-%
|
|
docs-%:
|
|
$(MAKE) -C docs $*
|
|
|
|
.PHONY: man
|
|
man:
|
|
./build/gen-man.sh man
|
|
|
|
######################################################
|
|
#
|
|
# Linux distro package targets
|
|
#
|
|
######################################################
|
|
|
|
.PHONY: deb
|
|
deb:
|
|
VERSION=$(VERSION) ./build/gen-deb.sh
|
|
|
|
######################################################
|
|
#
|
|
# Wasm targets
|
|
#
|
|
######################################################
|
|
|
|
.PHONY: wasm-test
|
|
wasm-test: wasm-lib-test wasm-rego-test
|
|
|
|
.PHONY: wasm-lib-build
|
|
wasm-lib-build:
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
@$(MAKE) -C wasm ensure-builder build
|
|
cp wasm/_obj/opa.wasm internal/compiler/wasm/opa/opa.wasm
|
|
cp wasm/_obj/callgraph.csv internal/compiler/wasm/opa/callgraph.csv
|
|
else
|
|
@echo "Docker not installed or not running. Skipping OPA-WASM library build."
|
|
endif
|
|
|
|
.PHONY: wasm-lib-test
|
|
wasm-lib-test:
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
@$(MAKE) -C wasm ensure-builder test
|
|
else
|
|
@echo "Docker not installed or not running. Skipping OPA-WASM library test."
|
|
endif
|
|
|
|
.PHONY: wasm-rego-test
|
|
wasm-rego-test: generate
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
GOVERSION=$(GOVERSION) DOCKER_UID=$(DOCKER_UID) DOCKER_GID=$(DOCKER_GID) ./build/run-wasm-rego-tests.sh
|
|
else
|
|
@echo "Docker not installed or not running. Skipping Rego-WASM test."
|
|
endif
|
|
|
|
.PHONY: wasm-lib-clean
|
|
wasm-lib-clean:
|
|
@$(MAKE) -C wasm clean
|
|
|
|
.PHONY: wasm-rego-testgen-install
|
|
wasm-rego-testgen-install:
|
|
$(GO) install ./v1/test/wasm/cmd/wasm-rego-testgen
|
|
|
|
######################################################
|
|
#
|
|
# CI targets
|
|
#
|
|
######################################################
|
|
|
|
CI_GOLANG_DOCKER_MAKE := $(DOCKER) run \
|
|
$(DOCKER_FLAGS) \
|
|
-u $(DOCKER_UID):$(DOCKER_GID) \
|
|
-v $(PWD):/src \
|
|
-w /src \
|
|
-e GOCACHE=/src/.go/cache \
|
|
-e GOARCH=$(GOARCH) \
|
|
-e CGO_ENABLED=$(CGO_ENABLED) \
|
|
-e WASM_ENABLED=$(WASM_ENABLED) \
|
|
-e FUZZ_TIME=$(FUZZ_TIME) \
|
|
-e TELEMETRY_URL=$(TELEMETRY_URL) \
|
|
$(RELEASE_BUILD_IMAGE)
|
|
|
|
.PHONY: ci-go-%
|
|
ci-go-%: generate
|
|
$(CI_GOLANG_DOCKER_MAKE) /bin/bash -c "git config --system --add safe.directory /src && make $*"
|
|
|
|
.PHONY: ci-release-test
|
|
ci-release-test: generate
|
|
$(CI_GOLANG_DOCKER_MAKE) make test perf wasm-sdk-e2e-test check
|
|
|
|
.PHONY: ci-check-working-copy
|
|
ci-check-working-copy: generate
|
|
./build/check-working-copy.sh
|
|
|
|
.PHONY: ci-wasm
|
|
ci-wasm: wasm-test
|
|
|
|
.PHONY: ci-build-linux
|
|
ci-build-linux: ensure-release-dir ensure-linux-toolchain
|
|
@$(MAKE) build GOOS=linux
|
|
chmod +x opa_linux_$(GOARCH)
|
|
mv opa_linux_$(GOARCH) $(RELEASE_DIR)/
|
|
cd $(RELEASE_DIR)/ && shasum -a 256 opa_linux_$(GOARCH) > opa_linux_$(GOARCH).sha256
|
|
|
|
.PHONY: ci-build-linux-static
|
|
ci-build-linux-static: ensure-release-dir
|
|
@$(MAKE) build GOOS=linux WASM_ENABLED=0 CGO_ENABLED=0
|
|
chmod +x opa_linux_$(GOARCH)
|
|
mv opa_linux_$(GOARCH) $(RELEASE_DIR)/opa_linux_$(GOARCH)_static
|
|
cd $(RELEASE_DIR)/ && shasum -a 256 opa_linux_$(GOARCH)_static > opa_linux_$(GOARCH)_static.sha256
|
|
|
|
.PHONY: ci-build-darwin
|
|
ci-build-darwin: ensure-release-dir
|
|
@$(MAKE) build GOOS=darwin
|
|
chmod +x opa_darwin_$(GOARCH)
|
|
mv opa_darwin_$(GOARCH) $(RELEASE_DIR)/
|
|
cd $(RELEASE_DIR)/ && shasum -a 256 opa_darwin_$(GOARCH) > opa_darwin_$(GOARCH).sha256
|
|
|
|
.PHONY: ci-build-darwin-arm64-static
|
|
ci-build-darwin-arm64-static: ensure-release-dir
|
|
@$(MAKE) build GOOS=darwin GOARCH=arm64 WASM_ENABLED=0 CGO_ENABLED=0
|
|
chmod +x opa_darwin_arm64
|
|
mv opa_darwin_arm64 $(RELEASE_DIR)/opa_darwin_arm64_static
|
|
cd $(RELEASE_DIR)/ && shasum -a 256 opa_darwin_arm64_static > opa_darwin_arm64_static.sha256
|
|
|
|
# NOTE: This target expects to be run as root on some debian/ubuntu variant
|
|
# that can install the `gcc-mingw-w64-x86-64` package via apt-get.
|
|
.PHONY: ci-build-windows
|
|
ci-build-windows: ensure-release-dir
|
|
build/ensure-windows-toolchain.sh
|
|
@$(MAKE) build GOOS=windows CC=x86_64-w64-mingw32-gcc
|
|
mv opa_windows_$(GOARCH) $(RELEASE_DIR)/opa_windows_$(GOARCH).exe
|
|
cd $(RELEASE_DIR)/ && shasum -a 256 opa_windows_$(GOARCH).exe > opa_windows_$(GOARCH).exe.sha256
|
|
rm resource.syso
|
|
|
|
.PHONY: ensure-release-dir
|
|
ensure-release-dir:
|
|
mkdir -p $(RELEASE_DIR)
|
|
|
|
.PHONY: ensure-executable-bin
|
|
ensure-executable-bin:
|
|
find $(RELEASE_DIR) -type f ! -name "*.sha256" | xargs chmod +x
|
|
|
|
.PHONY: ensure-linux-toolchain
|
|
ensure-linux-toolchain:
|
|
ifeq ($(CGO_ENABLED),1)
|
|
$(eval export CC = $(shell GOARCH=$(GOARCH) build/ensure-linux-toolchain.sh))
|
|
else
|
|
@echo "CGO_ENABLED=$(CGO_ENABLED). No need to check gcc toolchain."
|
|
endif
|
|
|
|
.PHONY: build-all-platforms
|
|
build-all-platforms: ci-build-linux ci-build-linux-static ci-build-darwin ci-build-darwin-arm64-static ci-build-windows
|
|
|
|
.PHONY: image-quick
|
|
image-quick: image-quick-$(GOARCH)
|
|
|
|
# % = arch
|
|
.PHONY: image-quick-%
|
|
image-quick-%: ensure-executable-bin
|
|
ifneq ($(GOARCH),arm64) # build only static images for arm64
|
|
$(DOCKER) build \
|
|
-t $(DOCKER_IMAGE):$(VERSION) \
|
|
--build-arg BASE=chainguard/glibc-dynamic \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--platform linux/$* \
|
|
.
|
|
$(DOCKER) build \
|
|
-t $(DOCKER_IMAGE):$(VERSION)-debug \
|
|
--build-arg BASE=chainguard/glibc-dynamic:latest-dev \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--platform linux/$* \
|
|
.
|
|
endif
|
|
$(DOCKER) build \
|
|
-t $(DOCKER_IMAGE):$(VERSION)-static \
|
|
--build-arg BASE=chainguard/static:latest \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--build-arg BIN_SUFFIX=_static \
|
|
--platform linux/$* \
|
|
.
|
|
|
|
$(DOCKER) build \
|
|
-t $(DOCKER_IMAGE):$(VERSION)-static-debug \
|
|
--build-arg BASE=chainguard/busybox:latest-glibc \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--build-arg BIN_SUFFIX=_static \
|
|
--platform linux/$* \
|
|
.
|
|
|
|
# % = base tag
|
|
.PHONY: push-manifest-list-%
|
|
push-manifest-list-%: ensure-executable-bin
|
|
$(DOCKER) buildx build \
|
|
--tag $(DOCKER_IMAGE):$* \
|
|
--build-arg BASE=chainguard/glibc-dynamic:latest \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--platform $(DOCKER_PLATFORMS) \
|
|
--provenance=false \
|
|
--push \
|
|
.
|
|
$(DOCKER) buildx build \
|
|
--tag $(DOCKER_IMAGE):$*-debug \
|
|
--build-arg BASE=chainguard/glibc-dynamic:latest-dev \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--platform $(DOCKER_PLATFORMS) \
|
|
--provenance=false \
|
|
--push \
|
|
.
|
|
|
|
$(DOCKER) buildx build \
|
|
--tag $(DOCKER_IMAGE):$*-static \
|
|
--build-arg BASE=chainguard/static:latest \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--build-arg BIN_SUFFIX=_static \
|
|
--platform $(DOCKER_PLATFORMS_STATIC) \
|
|
--provenance=false \
|
|
--push \
|
|
.
|
|
|
|
$(DOCKER) buildx build \
|
|
--tag $(DOCKER_IMAGE):$*-static-debug \
|
|
--build-arg BASE=chainguard/busybox:latest-glibc \
|
|
--build-arg BIN_DIR=$(RELEASE_DIR) \
|
|
--build-arg BIN_SUFFIX=_static \
|
|
--platform $(DOCKER_PLATFORMS_STATIC) \
|
|
--provenance=false \
|
|
--push \
|
|
.
|
|
|
|
.PHONY: ci-image-smoke-test
|
|
ci-image-smoke-test: ci-image-smoke-test-$(GOARCH)
|
|
|
|
# % = arch
|
|
.PHONY: ci-image-smoke-test-%
|
|
ci-image-smoke-test-%: image-quick-%
|
|
ifneq ($(GOARCH),arm64) # we build only static images for arm64
|
|
$(DOCKER) run --platform linux/$* $(DOCKER_IMAGE):$(VERSION) version
|
|
$(DOCKER) run --platform linux/$* $(DOCKER_IMAGE):$(VERSION)-debug version
|
|
|
|
$(DOCKER) image inspect $(DOCKER_IMAGE):$(VERSION) |\
|
|
$(DOCKER) run --interactive --platform linux/$* $(DOCKER_IMAGE):$(VERSION) \
|
|
eval --fail --format raw --stdin-input 'input[0].Config.User = "1000:1000"'
|
|
endif
|
|
$(DOCKER) run --platform linux/$* $(DOCKER_IMAGE):$(VERSION)-static version
|
|
|
|
# % = rego/wasm
|
|
.PHONY: ci-binary-smoke-test-%
|
|
ci-binary-smoke-test-%:
|
|
chmod +x "$(RELEASE_DIR)/$(BINARY)"
|
|
./build/binary-smoke-test.sh "$(RELEASE_DIR)/$(BINARY)" "$*"
|
|
|
|
.PHONY: push-binary-edge
|
|
push-binary-edge:
|
|
aws s3 sync $(RELEASE_DIR) s3://$(S3_RELEASE_BUCKET)/edge/ --no-progress --region us-west-1
|
|
|
|
.PHONY: docker-login
|
|
docker-login:
|
|
@echo "Docker Login..."
|
|
@echo ${DOCKER_PASSWORD} | $(DOCKER) login -u ${DOCKER_USER} --password-stdin
|
|
|
|
.PHONY: push-image
|
|
push-image: docker-login push-manifest-list-$(VERSION)
|
|
|
|
.PHONY: push-wasm-builder-image
|
|
push-wasm-builder-image: docker-login
|
|
$(MAKE) -C wasm push-builder
|
|
|
|
.PHONY: deploy-ci
|
|
deploy-ci: push-image push-manifest-list-edge push-binary-edge
|
|
|
|
.PHONY: release-ci
|
|
# Don't tag and push "latest" image tags if the version is a release candidate or a bugfix branch
|
|
# where the changes don't exist in main
|
|
ifneq (,$(or $(findstring rc,$(VERSION)), $(findstring release-,$(shell git branch --contains HEAD))))
|
|
release-ci: push-image
|
|
else
|
|
release-ci: push-image push-manifest-list-latest
|
|
endif
|
|
|
|
.PHONY: netlify
|
|
netlify: docs-clean docs-ci docs-build
|
|
|
|
# Kept for compatibility. Use `make fuzz` instead.
|
|
.PHONY: check-fuzz
|
|
check-fuzz: fuzz
|
|
|
|
# GOPRIVATE=* causes go to fetch all dependencies from their corresponding VCS
|
|
# source, not through the golang-provided proxy services. We're cleaning out
|
|
# /src/.go by providing a tmpfs mount, so the `go mod vendor -v` command will
|
|
# not be able to use any module cache.
|
|
.PHONY: check-go-module
|
|
check-go-module:
|
|
docker run \
|
|
$(DOCKER_FLAGS) \
|
|
-w /src \
|
|
-v $(PWD):/src:Z \
|
|
-e 'GOPRIVATE=*' \
|
|
--tmpfs /src/.go \
|
|
$(RELEASE_BUILD_IMAGE) \
|
|
/bin/bash -c "git config --system --add safe.directory /src && go mod vendor -v"
|
|
|
|
.PHONY: check-yaml-tests
|
|
check-yaml-tests:
|
|
ifeq ($(DOCKER_RUNNING), 1)
|
|
docker run --rm -v $(shell pwd):/data:ro,Z -w /data pipelinecomponents/yamllint:${YAML_LINT_VERSION} yamllint -f $(YAML_LINT_FORMAT) v1/test/cases/testdata
|
|
else
|
|
@echo "Docker not installed or running. Skipping yamllint run."
|
|
endif
|
|
|
|
######################################################
|
|
#
|
|
# Release targets
|
|
#
|
|
######################################################
|
|
|
|
.PHONY: release-patch
|
|
release-patch:
|
|
ifeq ($(GITHUB_TOKEN),)
|
|
@echo "\033[0;31mGITHUB_TOKEN environment variable missing.\033[33m Provide a GitHub Personal Access Token (PAT) with the 'read:org' scope.\033[0m"
|
|
endif
|
|
@$(DOCKER) run $(DOCKER_FLAGS) \
|
|
-e GITHUB_TOKEN=$(GITHUB_TOKEN) \
|
|
-e LAST_VERSION=$(LAST_VERSION) \
|
|
-v $(PWD):/_src:Z \
|
|
ashtalk/python-go-perl:v2 \
|
|
/_src/build/gen-release-patch.sh --version=$(VERSION) --source-url=/_src
|
|
|
|
.PHONY: dev-patch
|
|
dev-patch:
|
|
@$(DOCKER) run $(DOCKER_FLAGS) \
|
|
-v $(PWD):/_src:Z \
|
|
ashtalk/python-go-perl:v2 \
|
|
/_src/build/gen-dev-patch.sh --version=$(VERSION) --source-url=/_src
|
|
|
|
# Deprecated targets. To be removed.
|
|
.PHONY: build-linux depr-build-linux build-windows depr-build-windows build-darwin depr-build-darwin release release-local
|
|
build-linux: deprecation-build-linux
|
|
build-windows: deprecation-build-windows
|
|
build-darwin: deprecation-build-darwin
|
|
release: deprecation-release
|
|
release-local: deprecation-release-local
|
|
|
|
.PHONY: deprecation-%
|
|
deprecation-%:
|
|
@echo "----------------------------------------------"
|
|
@echo "The '$*' make target is deprecated!"
|
|
@echo "----------------------------------------------"
|
|
@echo "To run build for your platform, use 'make build'."
|
|
@echo "To cross-compile for a specific platform, use the corresponding 'ci-build-*' target."
|
|
@echo
|
|
@$(MAKE) depr-$*
|
|
|
|
depr-build-linux: ensure-release-dir
|
|
@$(MAKE) build GOOS=linux CGO_ENABLED=0 WASM_ENABLED=0
|
|
mv opa_linux_$(GOARCH) $(RELEASE_DIR)/
|
|
|
|
depr-build-darwin: ensure-release-dir
|
|
@$(MAKE) build GOOS=darwin CGO_ENABLED=0 WASM_ENABLED=0
|
|
mv opa_darwin_$(GOARCH) $(RELEASE_DIR)/
|
|
|
|
depr-build-windows: ensure-release-dir
|
|
@$(MAKE) build GOOS=windows CGO_ENABLED=0 WASM_ENABLED=0
|
|
mv opa_windows_$(GOARCH) $(RELEASE_DIR)/opa_windows_$(GOARCH).exe
|
|
rm resource.syso
|
|
|
|
depr-release:
|
|
$(DOCKER) run $(DOCKER_FLAGS) \
|
|
-v $(PWD)/$(RELEASE_DIR):/$(RELEASE_DIR):Z \
|
|
-v $(PWD):/_src:Z \
|
|
-e TELEMETRY_URL=$(TELEMETRY_URL) \
|
|
$(RELEASE_BUILD_IMAGE) \
|
|
/_src/build/build-release.sh --version=$(VERSION) --output-dir=/$(RELEASE_DIR) --source-url=/_src
|
|
|
|
depr-release-local:
|
|
$(DOCKER) run $(DOCKER_FLAGS) \
|
|
-v $(PWD)/$(RELEASE_DIR):/$(RELEASE_DIR):Z \
|
|
-v $(PWD):/_src:Z \
|
|
-e TELEMETRY_URL=$(TELEMETRY_URL) \
|
|
$(RELEASE_BUILD_IMAGE) \
|
|
/_src/build/build-release.sh --output-dir=/$(RELEASE_DIR) --source-url=/_src
|