mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Support building NodeJS in UBI
Signed-off-by: Balasankar "Balu" C <balasankar@gitlab.com>
This commit is contained in:
parent
4b0462b4be
commit
0f5bc500c3
1 changed files with 47 additions and 12 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue