gitlab-build-images/scripts/install-node
Balasankar "Balu" C f28d358e24
Set default value for BUILD_ARCH in installation scripts
Signed-off-by: Balasankar "Balu" C <balasankar@gitlab.com>
2022-08-05 13:18:47 +05:30

62 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
set -xeuo pipefail
IFS=$'\n\t'
NODE_INSTALL_VERSION=${1:-16.14.2}
YARN_INSTALL_VERSION=${2:-1.22.17}
# Map MAJOR.MINOR.patch -> MAJOR.x
NODE_MAJOR=`echo $NODE_INSTALL_VERSION | sed -r -e "s/([0-9]+)\.[0-9]+.*/\1\.x/g"`
function build_debian() {
# add official debian repos for node
curl -sS -L https://deb.nodesource.com/setup_${NODE_MAJOR} | bash -
apt-get update
NODE_FILE_NAME="nodejs_$NODE_INSTALL_VERSION-deb-1nodesource1_${BUILD_ARCH}.deb"
curl -s -O "https://deb.nodesource.com/node_$NODE_MAJOR/pool/main/n/nodejs/$NODE_FILE_NAME"
dpkg -i "$NODE_FILE_NAME"
rm -f "$NODE_FILE_NAME"
npm install --global yarn@${YARN_INSTALL_VERSION}
npm cache clean --force
apt-get autoremove -yq
apt-get clean -yqq
rm -rf /var/lib/apt/lists/*
}
function build_ubi() {
# For rpms, node uses `x86_64` suffix and not `amd64`. So we can't use
# existing `BUILD_ARCH` (which says amd64/arm64) here.
BUILD_ARCH=$(arch)
UBI_VERSION=$(lsb_release -a | awk '/Release/ { print $2 }')
UBI_MAJOR_VERSION=${UBI_VERSION%.*} # strip last component
# add official rhel repos for node
curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR} | bash -
yum update -y
NODE_FILE_NAME="nodejs-${NODE_INSTALL_VERSION}-1nodesource.${BUILD_ARCH}.rpm"
curl -s -O "https://rpm.nodesource.com/pub_${NODE_MAJOR}/el/${UBI_MAJOR_VERSION}/${BUILD_ARCH}/${NODE_FILE_NAME}"
yum install -y "$NODE_FILE_NAME"
rm -f "$NODE_FILE_NAME"
npm install --global yarn@${YARN_INSTALL_VERSION}
npm cache clean --force
yum autoremove -y
yum clean -y all
}
BUILD_OS=${BUILD_OS:-debian}
BUILD_ARCH=${BUILD_ARCH:-amd64}
if [[ $BUILD_OS =~ debian ]]; then
build_debian "$@"
elif [[ $BUILD_OS =~ ubi ]]; then
build_ubi "$@"
fi