mirror of https://github.com/istio/istio.io.git
103 lines
3.1 KiB
Bash
Executable File
103 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright Istio Authors
|
|
#
|
|
# 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 -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
export ISTIO_REMOTE=${ISTIO_REMOTE:-origin}
|
|
export ISTIO_BRANCH=${ISTIO_BRANCH:-master}
|
|
|
|
# Determine the SHA for the Istio dependency by parsing the go.mod file.
|
|
export ISTIO_SHA=${ISTIO_SHA:-$(< go.mod grep 'istio.io/istio v' | cut -d'-' -f3)}
|
|
|
|
echo "ISTIOIO_GO=${ISTIOIO_GO}"
|
|
echo "ISTIO_GO=${ISTIO_GO}"
|
|
echo "ISTIO_REMOTE=${ISTIO_REMOTE}"
|
|
echo "ISTIO_BRANCH=${ISTIO_BRANCH}"
|
|
echo "ISTIO_SHA=${ISTIO_SHA}"
|
|
|
|
# Download the Istio source if not available.
|
|
if [[ -d "${ISTIO_GO}" ]]
|
|
then
|
|
echo "${ISTIO_GO} already exists. Using existing repository ..."
|
|
else
|
|
echo "${ISTIO_GO} not found. Cloning Istio repository ..."
|
|
git clone https://github.com/istio/istio.git "${ISTIO_GO}"
|
|
fi
|
|
|
|
pushd "${ISTIO_GO}" > /dev/null
|
|
|
|
# Get updates to the remote repository
|
|
git fetch "$ISTIO_REMOTE"
|
|
|
|
# Checkout the Istio version from the git dependency.
|
|
git checkout "$ISTIO_SHA"
|
|
|
|
# Build and install istioctl
|
|
ISTIOCTL_ARTIFACT="${ISTIO_OUT}/release/"
|
|
case "$GOOS_LOCAL" in
|
|
linux)
|
|
ISTIOCTL_ARTIFACT+="istioctl-${GOOS_LOCAL}-${GOARCH_LOCAL}"
|
|
;;
|
|
darwin)
|
|
ISTIOCTL_ARTIFACT+="istioctl-osx"
|
|
;;
|
|
windows)
|
|
ISTIOCTL_ARTIFACT+="istioctl-win.exe"
|
|
;;
|
|
*)
|
|
echo "Unsupported platform: $GOOS_LOCAL"
|
|
exit 0
|
|
;;
|
|
esac
|
|
# Location where istioctl will be run from.
|
|
export ISTIOIO_BIN=${ISTIOIO_BIN:-"/gobin"}
|
|
LONG_SHA=$(git rev-parse "${ISTIO_SHA}")
|
|
export TAG=${ISTIO_IMAGE_VERSION}.${LONG_SHA}
|
|
export VERSION=${TAG}
|
|
export ISTIO_VERSION=${TAG}
|
|
echo "TAG=${TAG}"
|
|
echo "VERSION=${VERSION}"
|
|
echo "ISTIO_VERSION=${ISTIO_VERSION}"
|
|
make gen-charts
|
|
if [ -z "$IN_BUILD_CONTAINER" ]
|
|
then
|
|
make "$ISTIOCTL_ARTIFACT"
|
|
cp -a "$ISTIOCTL_ARTIFACT" "${ISTIOIO_BIN}/istioctl"
|
|
else
|
|
make "${ISTIO_OUT}/release/istioctl-linux-amd64"
|
|
cp -a "${ISTIO_OUT}/release/istioctl-linux-amd64" /gobin/istioctl
|
|
fi
|
|
popd > /dev/null
|
|
|
|
# Copy install, samples, and tool files over from Istio. These are needed by the tests.
|
|
rm -rf "${ISTIOIO_GO}/samples" "${ISTIOIO_GO}/tools" "${ISTIOIO_GO}/tests/integration" "${ISTIOIO_GO}/manifests"
|
|
cp -a "${ISTIO_GO}/samples" "${ISTIOIO_GO}/samples"
|
|
mkdir "${ISTIOIO_GO}/tools"
|
|
cp -a "${ISTIO_GO}/tools/certs" "${ISTIOIO_GO}/tools/certs"
|
|
mkdir "${ISTIOIO_GO}/tests/integration/"
|
|
cp -a "${ISTIO_GO}/tests/integration/iop-integration-test-defaults.yaml" "${ISTIOIO_GO}/tests/integration/"
|
|
cp -a "${ISTIO_GO}/manifests" "${ISTIOIO_GO}/manifests"
|
|
|
|
# For generating junit.xml files
|
|
function install-junit-report() {
|
|
(cd /tmp; go get github.com/jstemmer/go-junit-report)
|
|
}
|
|
|
|
echo "Installing go-junit-report..."
|
|
command -v go-junit-report || install-junit-report
|