Files
higress/tools/hack/build-envoy.sh

53 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (c) 2023 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname -- "$0")" &> /dev/null && pwd)"
source "${SCRIPT_DIR}/setup-istio-env.sh"
if ! command -v patch >/dev/null 2>&1; then
echo "ERROR: 'patch' command not found. Please install it first (e.g. apt install patch / yum install patch / brew install gpatch)." >&2
exit 1
fi
cd ${ROOT}/external/proxy
if patch_output=$(patch -d . -s --dry-run -p1 < ${SCRIPT_DIR}/build-envoy.patch 2>&1); then
patch -d . -s -p1 < ${SCRIPT_DIR}/build-envoy.patch
elif reverse_output=$(patch -d . -s -R --dry-run -p1 < ${SCRIPT_DIR}/build-envoy.patch 2>&1); then
echo "build-envoy.patch was already patched"
else
echo "ERROR: failed to apply build-envoy.patch" >&2
echo "Patch output:" >&2
echo "${patch_output}" >&2
echo "Reverse patch output:" >&2
echo "${reverse_output}" >&2
exit 1
fi
CONDITIONAL_HOST_MOUNTS+="--mount type=bind,source=${ROOT}/external/package,destination=/home/package "
CONDITIONAL_HOST_MOUNTS+="--mount type=bind,source=${ROOT}/external/envoy,destination=/home/envoy "
BUILD_TOOLS_IMG=${BUILD_TOOLS_IMG:-"higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/build-tools-proxy:master-eebcdda8856e2d4f528991d27d4808880cce4c52"}
BUILD_WITH_CONTAINER=1 \
CONDITIONAL_HOST_MOUNTS=${CONDITIONAL_HOST_MOUNTS} \
BUILD_ENVOY_BINARY_ONLY=1 \
DOCKER_RUN_OPTIONS="--user root -e HTTP_PROXY -e HTTPS_PROXY" \
IMG=${BUILD_TOOLS_IMG} \
make test_release