mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
62 lines
1.8 KiB
Bash
Executable file
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
|