Merge branch 'pin-rubygems' into 'master'

Add a way to pin RubyGems and pin to 3.2

See merge request gitlab-org/gitlab-build-images!553
This commit is contained in:
Stan Hu 2022-06-21 16:46:26 +00:00
commit 65d0ed3c7e
5 changed files with 25 additions and 2 deletions

View file

@ -4,6 +4,7 @@ gitlab:
- .build_and_push - .build_and_push
stage: gitlab stage: gitlab
variables: variables:
RUBYGEMS: '3.2'
LFS: '2.9' LFS: '2.9'
YARN: '1.22' YARN: '1.22'
GRAPHICSMAGICK: '1.3.36' GRAPHICSMAGICK: '1.3.36'
@ -23,6 +24,7 @@ gitlab-assets:
- .build_and_push - .build_and_push
stage: gitlab-assets stage: gitlab-assets
variables: variables:
RUBYGEMS: '3.2'
LFS: '2.9' LFS: '2.9'
YARN: '1.22' YARN: '1.22'
GRAPHICSMAGICK: '1.3.36' GRAPHICSMAGICK: '1.3.36'

View file

@ -17,8 +17,9 @@ ENV PATH $PATH:/usr/local/go/bin
ARG RUBY_VERSION ARG RUBY_VERSION
ARG RUBY_DOWNLOAD_SHA256 ARG RUBY_DOWNLOAD_SHA256
ARG BUNDLER_VERSION ARG BUNDLER_VERSION
ARG RUBYGEMS_VERSION
RUN if [ -n "$RUBY_VERSION" ]; then /scripts/install-ruby $RUBY_VERSION $RUBY_DOWNLOAD_SHA256 $BUNDLER_VERSION && ruby --version; fi RUN if [ -n "$RUBY_VERSION" ]; then /scripts/install-ruby "$RUBY_VERSION" "$RUBY_DOWNLOAD_SHA256" "$BUNDLER_VERSION" "$RUBYGEMS_VERSION" && ruby --version; fi
# Git # Git
ARG GIT_VERSION ARG GIT_VERSION
@ -107,6 +108,7 @@ RUN /scripts/validate-binaries-architecture
# Set as env variables all versions configured # Set as env variables all versions configured
ENV RUBY_VERSION=${RUBY_VERSION} \ ENV RUBY_VERSION=${RUBY_VERSION} \
RUBYGEMS_VERSION=${RUBYGEMS_VERSION} \
GIT_VERSION=${GIT_VERSION} \ GIT_VERSION=${GIT_VERSION} \
CHROME_VERSION=${CHROME_VERSION} \ CHROME_VERSION=${CHROME_VERSION} \
NODE_VERSION=${NODE_INSTALL_VERSION} \ NODE_VERSION=${NODE_INSTALL_VERSION} \

View file

@ -14,6 +14,7 @@ JEMALLOC_DOWNLOAD_SHA256="2db82d1e7119df3e71b7640219b6dfe84789bc0537983c3b7ac4f7
JEMALLOC_DOWNLOAD_URL="https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_VERSION}/jemalloc-${JEMALLOC_VERSION}.tar.bz2" JEMALLOC_DOWNLOAD_URL="https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_VERSION}/jemalloc-${JEMALLOC_VERSION}.tar.bz2"
BUNDLER_VERSION=${3:-""} BUNDLER_VERSION=${3:-""}
RUBYGEMS_VERSION=${4:-""}
# Install needed packages # Install needed packages
apt-get update apt-get update
@ -65,6 +66,9 @@ make install -j $(nproc)
# Install specific version of bundler if provided # Install specific version of bundler if provided
if [[ "$BUNDLER_VERSION" != "" ]]; then gem install bundler -v $BUNDLER_VERSION; fi if [[ "$BUNDLER_VERSION" != "" ]]; then gem install bundler -v $BUNDLER_VERSION; fi
# Install specific version of RubyGems if provided
if [[ "$RUBYGEMS_VERSION" != "" ]]; then gem update --system $RUBYGEMS_VERSION; fi
# Cleanup # Cleanup
cd / cd /
rm -rf /usr/src/ruby /usr/src/jemalloc rm -rf /usr/src/ruby /usr/src/jemalloc

View file

@ -243,6 +243,20 @@ function print_bundler_args() {
printf -- "--build-arg BUNDLER_VERSION=%s " "$BUNDLER_VERSION" printf -- "--build-arg BUNDLER_VERSION=%s " "$BUNDLER_VERSION"
} }
function print_rubygems_args() {
case "$1" in
3.1)
RUBYGEMS_VERSION=3.1.6
;;
3.2)
RUBYGEMS_VERSION=3.2.33
;;
*) echo "Unknown rubygems version $1"; exit 1;
esac
printf -- "--build-arg RUBYGEMS_VERSION=%s " "$RUBYGEMS_VERSION"
}
function print_gcloud_args() { function print_gcloud_args() {
case "$1" in case "$1" in
383) 383)
@ -302,6 +316,7 @@ function parse_arguments() {
DEBIAN) CUSTOM_IMAGE_VERSION=$version ;; DEBIAN) CUSTOM_IMAGE_VERSION=$version ;;
RUBY) print_ruby_args $version ;; RUBY) print_ruby_args $version ;;
BUNDLER) print_bundler_args $version ;; BUNDLER) print_bundler_args $version ;;
RUBYGEMS) print_rubygems_args $version ;;
GOLANG) print_golang_args $version ;; GOLANG) print_golang_args $version ;;
CHROME) print_chrome_args $version ;; CHROME) print_chrome_args $version ;;
DOCKER) print_docker_args $version ;; DOCKER) print_docker_args $version ;;

View file

@ -1,5 +1,5 @@
PATH_TOOLS=(DEBIAN RUBY GOLANG NODE POSTGRESQL) PATH_TOOLS=(DEBIAN RUBY GOLANG NODE POSTGRESQL)
TAG_TOOLS=(BUNDLER GIT LFS CHROME YARN GRAPHICSMAGICK PGBOUNCER BAZELISK DOCKER BUILDX GCLOUD KUBECTL) TAG_TOOLS=(BUNDLER RUBYGEMS GIT LFS CHROME YARN GRAPHICSMAGICK PGBOUNCER BAZELISK DOCKER BUILDX GCLOUD KUBECTL)
function get_image_path() { function get_image_path() {
local path local path