mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-08 17:42:56 +01:00
Merge branch 'publish-ruby-patch-release' into 'master'
Publish images with full Ruby version See merge request https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/810 Merged-by: Stan Hu <stanhu@gmail.com> Approved-by: Lin Jen-Shin <jen-shin@gitlab.com> Reviewed-by: Rémy Coutable <remy@rymai.me> Reviewed-by: Evan Read <eread@gitlab.com> Reviewed-by: Lin Jen-Shin <jen-shin@gitlab.com> Co-authored-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
commit
b0f0352a1b
16 changed files with 125 additions and 98 deletions
|
|
@ -24,14 +24,19 @@ default:
|
|||
- gitlab-org-docker
|
||||
|
||||
stages:
|
||||
- custom
|
||||
- gitlab
|
||||
- gitlab-chart
|
||||
- gitlab-assets
|
||||
- gitlab-review-app
|
||||
- workhorse
|
||||
- gitaly
|
||||
- automation
|
||||
- custom
|
||||
- customers
|
||||
- docker
|
||||
- e2e
|
||||
- ep
|
||||
- gitaly
|
||||
- gitlab
|
||||
- gitlab-assets
|
||||
- gitlab-chart
|
||||
- gitlab-cng
|
||||
- gitlab-kas
|
||||
- gitlab-workhorse
|
||||
|
||||
variables:
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
.customers:
|
||||
.customers-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: customers
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -11,9 +11,9 @@
|
|||
# Used by customers-gitlab-com rspec job: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab-ci.yml
|
||||
customers:
|
||||
extends:
|
||||
- .customers
|
||||
- .customers-base
|
||||
variables:
|
||||
RUBY: '3.2'
|
||||
RUBY: '3.2.4'
|
||||
LFS: '2.9'
|
||||
CHROME: '119'
|
||||
NODE: '20.12'
|
||||
|
|
@ -27,9 +27,9 @@ customers:
|
|||
# Used by customers-gitlab-com qa e2e test: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab/ci/e2e.gitlab-ci.yml
|
||||
customers-qa-assets:
|
||||
extends:
|
||||
- .customers
|
||||
- .customers-base
|
||||
variables:
|
||||
RUBY: '3.2'
|
||||
RUBY: '3.2.4'
|
||||
CHROME: '119'
|
||||
NODE: '20.12'
|
||||
YARN: '1.22'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# Docker image with buildx plugin
|
||||
.docker:
|
||||
.docker-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: docker
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -10,7 +11,7 @@
|
|||
|
||||
docker:
|
||||
extends:
|
||||
- .docker
|
||||
- .docker-base
|
||||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm', 'debian:bookworm-slim']
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
# Used by gitlab e2e tests and other qa related tasks
|
||||
.e2e:
|
||||
# Used by GitLab's Review app jobs and triage-ops
|
||||
.e2e-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: e2e
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -21,11 +23,11 @@
|
|||
# Base image with just ruby and bundler
|
||||
e2e:
|
||||
extends:
|
||||
- .e2e
|
||||
- .e2e-base
|
||||
parallel:
|
||||
matrix:
|
||||
- OS: ["debian:bookworm"]
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
BUNDLER: ['2.4', '2.5']
|
||||
|
||||
# Image with ruby, bundler and docker
|
||||
|
|
@ -42,7 +44,7 @@ e2e-chrome:
|
|||
parallel:
|
||||
matrix:
|
||||
- OS: ["debian:bookworm"]
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
BUNDLER: ['2.4', '2.5']
|
||||
CHROME: ['120', '123']
|
||||
|
||||
|
|
@ -58,7 +60,7 @@ e2e-cng:
|
|||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm']
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
BUNDLER: ['2.5']
|
||||
CHROME: ['120', '123']
|
||||
|
||||
|
|
|
|||
18
.gitlab/ci/ep.images.yml
Normal file
18
.gitlab/ci/ep.images.yml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Used by GitLab's Review app jobs and triage-ops
|
||||
.ep-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: ep
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
- ".gitlab/ci/ep.images.yml"
|
||||
|
||||
ep-native-cloud-services:
|
||||
extends:
|
||||
- .ep-base
|
||||
variables:
|
||||
RUBY: '3.2.4'
|
||||
GCLOUD: '383'
|
||||
KUBECTL: '1.27'
|
||||
HELM: '3.9'
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
# Used by Gitaly: https://gitlab.com/gitlab-org/gitaly/blob/master/.gitlab-ci.yml
|
||||
.gitaly:
|
||||
.gitaly-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: gitaly
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -12,10 +13,8 @@
|
|||
- ".gitlab/ci/gitaly.images.yml"
|
||||
|
||||
gitaly:
|
||||
needs: []
|
||||
extends:
|
||||
- .gitaly
|
||||
stage: gitaly
|
||||
- .gitaly-base
|
||||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm']
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
# Used by GitLab chart CI (https://gitlab.com/gitlab-org/charts/gitlab)
|
||||
|
||||
.gitlab-chart:
|
||||
.gitlab-chart-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: gitlab-chart
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -16,10 +17,9 @@
|
|||
|
||||
gitlab-chart:
|
||||
extends:
|
||||
- .gitlab-chart
|
||||
stage: gitlab-chart
|
||||
- .gitlab-chart-base
|
||||
variables:
|
||||
RUBY: '3.2'
|
||||
RUBY: '3.2.4'
|
||||
HELM: '3.10'
|
||||
HELM_KUBECONFORM: '0.1.17'
|
||||
VCLUSTER: '0.19'
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml
|
||||
.gitlab-cng-matrix:
|
||||
.gitlab-cng-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: gitlab-cng
|
||||
variables:
|
||||
LFS: '2.9'
|
||||
CHROME: '123'
|
||||
|
|
@ -7,7 +10,7 @@
|
|||
YARN: '1.22'
|
||||
GRAPHICSMAGICK: '1.3.36'
|
||||
POSTGRESQL: '11'
|
||||
RUBY: '3.0.patched'
|
||||
RUBY: '3.0.6'
|
||||
GIT: '2.33'
|
||||
GOLANG: '1.21'
|
||||
KUBECTL: '1.23'
|
||||
|
|
@ -15,8 +18,7 @@
|
|||
|
||||
gitlab-cng:
|
||||
extends:
|
||||
- .gitlab-cng-matrix
|
||||
- .build_dynamic_image
|
||||
- .gitlab-cng-base
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
# Used by GitLab/KAS integration tests
|
||||
.kas:
|
||||
.gitlab-kas-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: gitlab-kas
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
|
|
@ -10,7 +11,7 @@
|
|||
|
||||
gitlab-kas:
|
||||
extends:
|
||||
- .kas
|
||||
- .gitlab-kas-base
|
||||
variables:
|
||||
GOLANG: '1.21'
|
||||
RUST: '1.73'
|
||||
|
|
@ -23,4 +24,4 @@ gitlab-kas:
|
|||
POSTGRESQL: '12'
|
||||
parallel:
|
||||
matrix:
|
||||
- RUBY: ['3.0.patched', '3.1.patched', '3.2.patched']
|
||||
- RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
|
|
@ -1,36 +1,19 @@
|
|||
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml
|
||||
.gitlab:
|
||||
.gitlab-base:
|
||||
extends:
|
||||
- .build_dynamic_image
|
||||
stage: gitlab
|
||||
rules:
|
||||
- !reference [.build_dynamic_image, rules]
|
||||
- changes:
|
||||
- "scripts/install-bazelisk"
|
||||
- "scripts/install-chrome"
|
||||
- "scripts/install-docker"
|
||||
- "scripts/install-essentials"
|
||||
- "scripts/install-exiftool"
|
||||
- "scripts/install-git"
|
||||
- "scripts/install-gcloud"
|
||||
- "scripts/install-golang"
|
||||
- "scripts/install-graphicsmagick"
|
||||
- "scripts/install-helm"
|
||||
- "scripts/install-kubectl"
|
||||
- "scripts/install-lfs"
|
||||
- "scripts/install-node"
|
||||
- "scripts/install-pcre2"
|
||||
- "scripts/install-postgresql"
|
||||
- "scripts/install-ruby"
|
||||
- "scripts/install-rust"
|
||||
- "scripts/install-*"
|
||||
- "scripts/lib/custom-docker-build"
|
||||
- ".gitlab/ci/gitlab.images.yml"
|
||||
- "patches/ruby/**/*"
|
||||
|
||||
gitlab:
|
||||
extends:
|
||||
- .gitlab
|
||||
stage: gitlab
|
||||
- .gitlab-base
|
||||
variables:
|
||||
RUBYGEMS: '3.4'
|
||||
LFS: '2.9'
|
||||
|
|
@ -43,15 +26,24 @@ gitlab:
|
|||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm', 'debian:bookworm-slim']
|
||||
RUBY: ['3.0.patched', '3.1.patched', '3.2.patched']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
POSTGRESQL: ['13', '14', '15', '16']
|
||||
GOLANG: ['1.21', '1.22']
|
||||
CHROME: ['123']
|
||||
|
||||
# Used by GitLab's jobs that work with ruby gems
|
||||
gitlab-slim-ruby:
|
||||
extends:
|
||||
- .gitlab-base
|
||||
parallel:
|
||||
matrix:
|
||||
- RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
OS: ['debian:bookworm-slim']
|
||||
|
||||
# Used by GitLab's compile-production-assets and compile-test-assets jobs
|
||||
gitlab-assets:
|
||||
extends:
|
||||
- .gitlab
|
||||
- .gitlab-base
|
||||
stage: gitlab-assets
|
||||
variables:
|
||||
RUBYGEMS: '3.4'
|
||||
|
|
@ -63,48 +55,27 @@ gitlab-assets:
|
|||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm']
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
GIT: ['2.33']
|
||||
|
||||
# Used by GitLab's Review app jobs and triage-ops
|
||||
ep-native-cloud-services:
|
||||
extends:
|
||||
- .gitlab
|
||||
stage: gitlab-review-app
|
||||
variables:
|
||||
RUBY: '3.0'
|
||||
GCLOUD: '383'
|
||||
KUBECTL: '1.27'
|
||||
HELM: '3.9'
|
||||
|
||||
# Used by GitLab's jobs that work with ruby gems
|
||||
gitlab-slim-ruby:
|
||||
extends:
|
||||
- .gitlab
|
||||
stage: gitlab
|
||||
parallel:
|
||||
matrix:
|
||||
- RUBY: ['3.0', '3.1', '3.2']
|
||||
OS: ['debian:bookworm-slim']
|
||||
|
||||
# Used by GitLab's workhorse tests
|
||||
gitlab-workhorse:
|
||||
needs: []
|
||||
extends:
|
||||
- .gitlab
|
||||
stage: workhorse
|
||||
- .gitlab-base
|
||||
stage: gitlab-workhorse
|
||||
variables:
|
||||
EXIFTOOL: '12.60'
|
||||
RUBYGEMS: '3.4'
|
||||
parallel:
|
||||
matrix:
|
||||
- OS: ['debian:bookworm']
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
GOLANG: ['1.21', '1.22']
|
||||
RUST: ['1.73']
|
||||
GIT: ['2.36']
|
||||
- OS: ['ubi:8.6']
|
||||
RUBY: ['3.0', '3.1', '3.2']
|
||||
RUBY: ['3.0.6', '3.1.5', '3.2.4']
|
||||
GOLANG: ['1.21', '1.22']
|
||||
RUST: ['1.73']
|
||||
GIT: ['2.36']
|
||||
|
|
|
|||
28
Dockerfile.www-gitlab-com-debian-bookworm-ruby-3.2.4-node-20
Normal file
28
Dockerfile.www-gitlab-com-debian-bookworm-ruby-3.2.4-node-20
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
ARG GCLOUD_VERSION=413.0.0
|
||||
|
||||
# Google-cloud-sdk
|
||||
#
|
||||
# gsutil 5.18 unnecessarily requires the storage.buckets.get
|
||||
# permission: https://github.com/GoogleCloudPlatform/gsutil/issues/1663
|
||||
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:$GCLOUD_VERSION as gcloud-sdk
|
||||
FROM ruby:3.2.4-slim-bookworm
|
||||
# pupulated by docker buildx build --platform flag
|
||||
ARG TARGETARCH
|
||||
|
||||
# Install Google Cloud SDK for deploys via rsync
|
||||
COPY --from=gcloud-sdk /usr/lib/google-cloud-sdk /usr/lib/google-cloud-sdk
|
||||
COPY --from=gcloud-sdk /usr/share/google-cloud-sdk /usr/share/google-cloud-sdk
|
||||
RUN cd /usr/bin && find ../lib/google-cloud-sdk/bin -type f -executable -exec ln -s {} \;; cd -
|
||||
|
||||
ADD /scripts/ /scripts/
|
||||
ADD /patches /patches/
|
||||
|
||||
ENV NODE_INSTALL_VERSION=20.12.2
|
||||
ENV YARN_INSTALL_VERSION=1.22.19
|
||||
RUN /scripts/install-www-gitlab-com
|
||||
|
||||
# Set UTF-8 http://jaredmarkell.com/docker-and-locales/
|
||||
# Must be set after install-essentials is run
|
||||
ENV LANG C.UTF-8
|
||||
ENV LANGUAGE C
|
||||
ENV LC_ALL C.UTF-8
|
||||
|
|
@ -5,7 +5,7 @@ ARG GCLOUD_VERSION=413.0.0
|
|||
# gsutil 5.18 unnecessarily requires the storage.buckets.get
|
||||
# permission: https://github.com/GoogleCloudPlatform/gsutil/issues/1663
|
||||
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:$GCLOUD_VERSION as gcloud-sdk
|
||||
FROM ruby:3.0.5-slim-bullseye
|
||||
FROM ruby:3.0.6-slim-bullseye
|
||||
# pupulated by docker buildx build --platform flag
|
||||
ARG TARGETARCH
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ ARG GCLOUD_VERSION=413.0.0
|
|||
# gsutil 5.18 unnecessarily requires the storage.buckets.get
|
||||
# permission: https://github.com/GoogleCloudPlatform/gsutil/issues/1663
|
||||
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:$GCLOUD_VERSION as gcloud-sdk
|
||||
FROM ruby:3.2.2-slim-bullseye
|
||||
FROM ruby:3.2.4-slim-bullseye
|
||||
# pupulated by docker buildx build --platform flag
|
||||
ARG TARGETARCH
|
||||
|
||||
12
README.md
12
README.md
|
|
@ -85,7 +85,7 @@ Here are some example build names:
|
|||
|
||||
1. `debian-bullseye-ruby-2.7-golang-1.15:git-2.29`
|
||||
1. `debian-bullseye-ruby-3.0.0-node-14.15:git-2.29-lfs-2.9-yarn-1.22-graphicsmagick-1.3.34`
|
||||
1. `debian-bullseye-ruby-3.0.0.patched-golang-1.14-postgresql-12:git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-graphicsmagick-1.3.34`
|
||||
1. `debian-bullseye-ruby-3.0.0-golang-1.14-postgresql-12:git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-graphicsmagick-1.3.34`
|
||||
|
||||
#### Adding a new build
|
||||
|
||||
|
|
@ -98,7 +98,7 @@ new_image:
|
|||
- .build_dynamic_image
|
||||
variables:
|
||||
OS: 'debian:bookworm'
|
||||
RUBY: '3.0'
|
||||
RUBY: '3.0.6'
|
||||
GOLANG: '1.15'
|
||||
RUST: '1.73.0'
|
||||
GIT: '2.29'
|
||||
|
|
@ -121,11 +121,11 @@ See `scripts/cache-google-chrome` for more details.
|
|||
|
||||
## Note regarding Golang and FIPS
|
||||
|
||||
When adding support for a new major/minor Golang version, we also need to
|
||||
ensure there's a matching [`golang-fips`](https://github.com/golang-fips/)
|
||||
When adding support for a new major/minor Golang version, we also need to
|
||||
ensure there's a matching [`golang-fips`](https://github.com/golang-fips/)
|
||||
branch available, e.g. for Golang 1.21 there's https://github.com/golang-fips/go/tree/go1.21-fips-release.
|
||||
The `golang-fips` branch creation process can take time and so it
|
||||
[may be necessary to use the previous version](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/771)
|
||||
The `golang-fips` branch creation process can take time and so it
|
||||
[may be necessary to use the previous version](https://gitlab.com/gitlab-org/gitlab-build-images/-/merge_requests/771)
|
||||
until it's available.
|
||||
|
||||
## Contributing
|
||||
|
|
|
|||
|
|
@ -222,17 +222,17 @@ function print_bazelisk_args() {
|
|||
|
||||
function print_ruby_args() {
|
||||
case "$1" in
|
||||
3.0|3.0.patched)
|
||||
3.0.6)
|
||||
RUBY_VERSION="3.0.6"
|
||||
RUBY_DOWNLOAD_SHA256="6e6cbd490030d7910c0ff20edefab4294dfcd1046f0f8f47f78b597987ac683e"
|
||||
;;
|
||||
|
||||
3.1|3.1.patched)
|
||||
3.1.5)
|
||||
RUBY_VERSION="3.1.5"
|
||||
RUBY_DOWNLOAD_SHA256="3685c51eeee1352c31ea039706d71976f53d00ab6d77312de6aa1abaf5cda2c5"
|
||||
;;
|
||||
|
||||
3.2|3.2.patched)
|
||||
3.2.4)
|
||||
RUBY_VERSION="3.2.4"
|
||||
RUBY_DOWNLOAD_SHA256="c72b3c5c30482dca18b0f868c9075f3f47d8168eaf626d4e682ce5b59c858692"
|
||||
;;
|
||||
|
|
@ -297,7 +297,7 @@ function print_kubectl_args() {
|
|||
declare -A KUBECTL_DOWNLOAD_SHA256
|
||||
|
||||
# Use the commands below to download the sha256, and adapt the version number in the commands.
|
||||
#
|
||||
#
|
||||
# curl -L "https://dl.k8s.io/release/v1.29.0/bin/linux/amd64/kubectl.sha256"
|
||||
# curl -L "https://dl.k8s.io/release/v1.29.0/bin/linux/arm64/kubectl.sha256"
|
||||
case "$1" in
|
||||
|
|
@ -313,7 +313,7 @@ function print_kubectl_args() {
|
|||
;;
|
||||
1.27)
|
||||
# We need to use at least 1.27.2
|
||||
#
|
||||
#
|
||||
# see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/119916
|
||||
KUBECTL_VERSION=1.27.2
|
||||
KUBECTL_DOWNLOAD_SHA256[amd64]=4f38ee903f35b300d3b005a9c6bfb9a46a57f92e89ae602ef9c129b91dc6c5a5
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ TAG_TOOLS=(BUNDLER RUBYGEMS GIT LFS CHROME YARN GRAPHICSMAGICK EXIFTOOL BAZELISK
|
|||
# variables.
|
||||
# For example, consider a CI job which specifies the following variables:
|
||||
# OS: debian:bullseye
|
||||
# RUBY: 3.0
|
||||
# RUBY: 3.0.6
|
||||
# GOLANG: 1.19
|
||||
# RUST: 1.73.0
|
||||
# GIT: 2.33
|
||||
|
|
@ -43,7 +43,7 @@ function get_image_path() {
|
|||
# Generate the image tag using the components that were specified via variables.
|
||||
# For example, consider a CI job which specifies the following variables:
|
||||
# OS: debian:bullseye
|
||||
# RUBY: 2.7
|
||||
# RUBY: 3.1.5
|
||||
# GOLANG: 1.19
|
||||
# RUST: 1.73.0
|
||||
# GIT: 2.33
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue