blob: 355a90284d6c26b105fba833821a3830007460cc [file] [log] [blame]
#!/bin/bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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
. "$IMPALA_HOME/bin/report_build_error.sh"
setup_report_build_error
: ${ARCH_NAME:=$(uname -p)}
if [[ $ARCH_NAME == aarch64 ]]; then
NODEJS_DISTRO=linux-arm64
elif [[ $ARCH_NAME == x86_64 ]]; then
NODEJS_DISTRO=linux-x64
else
echo "This script supports Intel x86_64 or ARM aarch64 CPU architectures only." >&2
echo "Current CPU type is reported as '$ARCH_NAME'" >&2
# report the installation failure as a JUnit symptom
"${IMPALA_HOME}"/bin/generate_junitxml.py --phase JS_TEST \
--step "node.js installation" \
--error "Unknown CPU architecture $ARCH_NAME encountered."
exit 1
fi
: ${IMPALA_TOOLCHAIN_HOST:=native-toolchain.s3.amazonaws.com}
: ${IMPALA_NODEJS_VERSION:=v16.20.2}
: ${IMPALA_TOOLCHAIN:="$IMPALA_HOME/toolchain"}
IMPALA_NODEJS_LIB="${IMPALA_TOOLCHAIN}/node-${IMPALA_NODEJS_VERSION}"
CACHED_NODEJS_PATH="${HOME}/.cache/impala_nodejs"
# Install nodejs locally, if not installed
if [ ! -r "${IMPALA_NODEJS_LIB}/bin/node" ]; then
echo "Fetching NodeJS ${IMPALA_NODEJS_VERSION}-${NODEJS_DISTRO} binaries ..."
NODE_URL_SUFFIX="node-${IMPALA_NODEJS_VERSION}-${NODEJS_DISTRO}.tar.xz"
CACHED_NODEJS_TARBALL="${CACHED_NODEJS_PATH}/${NODE_URL_SUFFIX}"
if [ ! -r "${CACHED_NODEJS_TARBALL}" ]; then
NODE_URL_PREFIX="https://${IMPALA_TOOLCHAIN_HOST}/mirror/nodejs"
mkdir -p "$CACHED_NODEJS_PATH"
curl "${NODE_URL_PREFIX}/${NODE_URL_SUFFIX}" -o "${CACHED_NODEJS_TARBALL}"
fi
tar -xJf "${CACHED_NODEJS_TARBALL}" -C ./
mkdir -p "${IMPALA_NODEJS_LIB}"
mv node-${IMPALA_NODEJS_VERSION}-${NODEJS_DISTRO}/* -t "${IMPALA_NODEJS_LIB}"
rm -rf node-${IMPALA_NODEJS_VERSION}-${NODEJS_DISTRO}.tar.xz \
node-${IMPALA_NODEJS_VERSION}-${NODEJS_DISTRO}/
fi;
echo "NodeJS installation found in :"
echo "${IMPALA_NODEJS_LIB}/bin"