Skip to content

Commit 40904d4

Browse files
committed
Added build support for Enterprise Linux 10
1 parent 06c64ae commit 40904d4

File tree

11 files changed

+5247
-2558
lines changed

11 files changed

+5247
-2558
lines changed

.github/workflows/ci-cd-build-packages-1.yml

Lines changed: 261 additions & 1549 deletions
Large diffs are not rendered by default.

.github/workflows/ci-cd-build-packages-2.yml

Lines changed: 491 additions & 491 deletions
Large diffs are not rendered by default.

.github/workflows/ci-cd-build-packages-3.yml

Lines changed: 467 additions & 467 deletions
Large diffs are not rendered by default.

.github/workflows/ci-cd-build-packages-4.yml

Lines changed: 2700 additions & 48 deletions
Large diffs are not rendered by default.

.github/workflows/ci-cd-prepare.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,48 @@ jobs:
297297
ARTIFACT_PATH: output
298298
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}
299299

300+
build_docker_image_el_10:
301+
name: 'Build Docker image [el-10]'
302+
runs-on: ubuntu-24.04
303+
permissions:
304+
id-token: write
305+
environment: test
306+
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
307+
steps:
308+
- uses: actions/checkout@v4
309+
- uses: azure/login@v2
310+
with:
311+
tenant-id: ${{ vars.AZURE_TENANT_ID }}
312+
client-id: ${{ vars.AZURE_CLIENT_ID }}
313+
subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
314+
- uses: google-github-actions/auth@v2
315+
with:
316+
project_id: ${{ vars.GCLOUD_PROJECT_ID }}
317+
workload_identity_provider: projects/${{ vars.GCLOUD_PROJECT_NUM }}/locations/global/workloadIdentityPools/github-ci-test/providers/github-ci-test
318+
- name: Set up Cloud SDK
319+
uses: google-github-actions/setup-gcloud@v2
320+
with:
321+
version: '>= 363.0.0'
322+
323+
- name: Build
324+
run: ./internal-scripts/ci-cd/build-docker-images/build.sh
325+
env:
326+
IMAGE_NAME: 'ghcr.io/fullstaq-ruby/server-edition-ci-images'
327+
IMAGE_TAG: 'el-10-v1'
328+
SOURCE_DIR: 'environments/el-10'
329+
330+
- name: Dump image
331+
run: ./internal-scripts/ci-cd/build-docker-images/dump-image.sh
332+
env:
333+
IMAGE_NAME: 'ghcr.io/fullstaq-ruby/server-edition-ci-images'
334+
IMAGE_TAG: 'el-10-v1'
335+
- name: Archive artifact
336+
run: ./internal-scripts/ci-cd/upload-artifact.sh
337+
env:
338+
ARTIFACT_NAME: 'docker-image-el-10'
339+
ARTIFACT_PATH: output
340+
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}
341+
300342
build_docker_image_el_9:
301343
name: 'Build Docker image [el-9]'
302344
runs-on: ubuntu-24.04
@@ -960,6 +1002,7 @@ jobs:
9601002
- build_docker_image_debian_11
9611003
- build_docker_image_debian_12
9621004
- build_docker_image_debian_13
1005+
- build_docker_image_el_10
9631006
- build_docker_image_el_9
9641007
- build_docker_image_ubuntu_22_04
9651008
- build_docker_image_ubuntu_24_04
@@ -1083,6 +1126,20 @@ jobs:
10831126
with:
10841127
name: 'docker-image-debian-13'
10851128
path: artifacts
1129+
- name: Download Docker image artifact [el-10] from Google Cloud
1130+
run: ./internal-scripts/ci-cd/download-artifact.sh
1131+
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
1132+
env:
1133+
ARTIFACT_NAME: 'docker-image-el-10'
1134+
ARTIFACT_PATH: artifacts
1135+
CLEAR: true
1136+
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}
1137+
- name: Archive Docker image artifact [el-10] to Github
1138+
uses: actions/upload-artifact@v4
1139+
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
1140+
with:
1141+
name: 'docker-image-el-10'
1142+
path: artifacts
10861143
- name: Download Docker image artifact [el-9] from Google Cloud
10871144
run: ./internal-scripts/ci-cd/download-artifact.sh
10881145
if: contains(inputs.necessary_jobs, ';Build Docker image el-9;')
@@ -1284,6 +1341,9 @@ jobs:
12841341
|| (needs.build_docker_image_debian_13.result != 'success'
12851342
&& (needs.build_docker_image_debian_13.result != 'skipped'
12861343
|| contains(inputs.necessary_jobs, ';Build Docker image debian-13;')))
1344+
|| (needs.build_docker_image_el_10.result != 'success'
1345+
&& (needs.build_docker_image_el_10.result != 'skipped'
1346+
|| contains(inputs.necessary_jobs, ';Build Docker image el-10;')))
12871347
|| (needs.build_docker_image_el_9.result != 'success'
12881348
&& (needs.build_docker_image_el_9.result != 'skipped'
12891349
|| contains(inputs.necessary_jobs, ';Build Docker image el-9;')))

.github/workflows/ci-cd-publish-test-production.yml

Lines changed: 614 additions & 1 deletion
Large diffs are not rendered by default.

.github/workflows/ci-cd-publish-test-test.yml

Lines changed: 590 additions & 1 deletion
Large diffs are not rendered by default.

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,11 +381,22 @@ Fullstaq Ruby, ensures that the right version of Jemalloc is used. We are a bunc
381381

382382
> Red Hat Enterprise Linux (RHEL) is the original "Enterprise Linux". Compatible derivatives are CentOS, Rocky Linux and Alma Linux.
383383
384-
* Supported Enterprise Linux versions: 9, 8, 7
384+
* Supported Enterprise Linux versions: 10, 9, 8
385385
* Supported architectures: x86-64
386386

387387
Add the Fullstaq Ruby repository by creating `/etc/yum.repos.d/fullstaq-ruby.repo`. Pick one of the following:
388388

389+
Enterprise Linux 10:
390+
391+
[fullstaq-ruby]
392+
name=fullstaq-ruby
393+
baseurl=https://yum.fullstaqruby.org/el-10/$basearch
394+
gpgcheck=0
395+
repo_gpgcheck=1
396+
enabled=1
397+
gpgkey=https://raw.githubusercontent.com/fullstaq-ruby/server-edition/main/fullstaq-ruby.asc
398+
sslverify=1
399+
389400
Enterprise Linux 9:
390401

391402
[fullstaq-ruby]

config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ distributions: all
105105
# distributions:
106106
# - centos-8
107107
# - el-9
108+
# - el-10
108109
# - debian-11
109110
# - debian-12
110111
# - ubuntu-22.04
@@ -119,6 +120,8 @@ distribution_exclusions:
119120
- debian-12
120121
- debian-13
121122
- centos-8
123+
- el-10
122124
- ruby_minor_version: '3.2'
123125
distros:
124126
- debian-13
127+
- el-10

environments/el-10/Dockerfile

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
FROM rockylinux/rockylinux:10
2+
3+
# Used to link container image to the repo:
4+
# https://docs.github.com/en/free-pro-team@latest/packages/managing-container-images-with-github-container-registry/connecting-a-repository-to-a-container-image#connecting-a-repository-to-a-container-image-on-the-command-line
5+
LABEL org.opencontainers.image.source=https://github.com/fullstaq-ruby/server-edition
6+
7+
# If you make a change and you want to force users to re-pull the image
8+
# (e.g. when your change adds a feature that our scripts rely on, or is
9+
# breaking), then bump the version number in the `image_tag` file.
10+
11+
RUN set -x && \
12+
dnf install -y dnf-plugins-core epel-release && \
13+
dnf install -y --enablerepo epel --enablerepo devel --allowerasing \
14+
findutils gcc gcc-c++ make patch bzip2 curl autoconf automake \
15+
openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel \
16+
gdbm-devel ncurses-devel \
17+
rust-toolset && \
18+
dnf clean all && \
19+
rm -rf /tmp/* /var/tmp/*
20+
21+
RUN curl -fsSLo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-x86_64-unknown-linux-musl.tar.gz && \
22+
tar xzf sccache.tar.gz && \
23+
mv sccache-*/sccache /usr/local/bin/ && \
24+
chmod +x /usr/local/bin/sccache && \
25+
chown root: /usr/local/bin/sccache && \
26+
rm -rf sccache-* && \
27+
mkdir /usr/local/lib/sccache && \
28+
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/cc "$@"' > /usr/local/lib/sccache/cc && \
29+
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/c++ "$@"' > /usr/local/lib/sccache/c++ && \
30+
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/gcc "$@"' > /usr/local/lib/sccache/gcc && \
31+
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/g++ "$@"' > /usr/local/lib/sccache/g++ && \
32+
chmod +x /usr/local/lib/sccache/* && \
33+
\
34+
curl -fsSLo /sbin/matchhostfsowner.gz https://github.com/FooBarWidget/matchhostfsowner/releases/download/v1.0.1/matchhostfsowner-1.0.1-x86_64-linux.gz && \
35+
gunzip /sbin/matchhostfsowner.gz && \
36+
chmod +x,+s /sbin/matchhostfsowner && \
37+
mkdir /etc/matchhostfsowner && \
38+
echo 'app_account: builder' > /etc/matchhostfsowner/config.yml && \
39+
\
40+
groupadd --gid 9999 builder && \
41+
adduser --uid 9999 --gid 9999 --password '#' builder && \
42+
rm -rf /tmp/* /var/tmp/*
43+
44+
USER builder
45+
ENTRYPOINT ["/sbin/matchhostfsowner"]

0 commit comments

Comments
 (0)