Support building NodeJS in UBI

Signed-off-by: Balasankar "Balu" C <balasankar@gitlab.com>
This commit is contained in:
Balasankar "Balu" C 2022-07-05 11:11:57 +05:30
parent 4b0462b4be
commit 0f5bc500c3
No known key found for this signature in database
GPG key ID: B77D2E2E23735427

View file

@ -8,19 +8,54 @@ YARN_INSTALL_VERSION=${2:-1.22.17}
# Map MAJOR.MINOR.patch -> MAJOR.x # Map MAJOR.MINOR.patch -> MAJOR.x
NODE_MAJOR=`echo $NODE_INSTALL_VERSION | sed -r -e "s/([0-9]+)\.[0-9]+.*/\1\.x/g"` NODE_MAJOR=`echo $NODE_INSTALL_VERSION | sed -r -e "s/([0-9]+)\.[0-9]+.*/\1\.x/g"`
# add official debian repos for node function build_debian() {
curl -sS -L https://deb.nodesource.com/setup_${NODE_MAJOR} | bash - # add official debian repos for node
curl -sS -L https://deb.nodesource.com/setup_${NODE_MAJOR} | bash -
apt-get update apt-get update
NODE_FILE_NAME="nodejs_$NODE_INSTALL_VERSION-deb-1nodesource1_$(dpkg --print-architecture).deb" 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" curl -s -O "https://deb.nodesource.com/node_$NODE_MAJOR/pool/main/n/nodejs/$NODE_FILE_NAME"
dpkg -i "$NODE_FILE_NAME" dpkg -i "$NODE_FILE_NAME"
rm -f "$NODE_FILE_NAME" rm -f "$NODE_FILE_NAME"
npm install --global yarn@${YARN_INSTALL_VERSION} npm install --global yarn@${YARN_INSTALL_VERSION}
npm cache clean --force npm cache clean --force
apt-get autoremove -yq apt-get autoremove -yq
apt-get clean -yqq apt-get clean -yqq
rm -rf /var/lib/apt/lists/* 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}
if [[ $BUILD_OS =~ debian ]]; then
build_debian "$@"
elif [[ $BUILD_OS =~ ubi ]]; then
build_ubi "$@"
fi