Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,810 changes: 261 additions & 1,549 deletions .github/workflows/ci-cd-build-packages-1.yml

Large diffs are not rendered by default.

982 changes: 491 additions & 491 deletions .github/workflows/ci-cd-build-packages-2.yml

Large diffs are not rendered by default.

934 changes: 467 additions & 467 deletions .github/workflows/ci-cd-build-packages-3.yml

Large diffs are not rendered by default.

2,748 changes: 2,700 additions & 48 deletions .github/workflows/ci-cd-build-packages-4.yml

Large diffs are not rendered by default.

60 changes: 60 additions & 0 deletions .github/workflows/ci-cd-prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,48 @@ jobs:
ARTIFACT_PATH: output
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}

build_docker_image_el_10:
name: 'Build Docker image [el-10]'
runs-on: ubuntu-24.04
permissions:
id-token: write
environment: test
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
tenant-id: ${{ vars.AZURE_TENANT_ID }}
client-id: ${{ vars.AZURE_CLIENT_ID }}
subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
- uses: google-github-actions/auth@v2
with:
project_id: ${{ vars.GCLOUD_PROJECT_ID }}
workload_identity_provider: projects/${{ vars.GCLOUD_PROJECT_NUM }}/locations/global/workloadIdentityPools/github-ci-test/providers/github-ci-test
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v2
with:
version: '>= 363.0.0'

- name: Build
run: ./internal-scripts/ci-cd/build-docker-images/build.sh
env:
IMAGE_NAME: 'ghcr.io/fullstaq-ruby/server-edition-ci-images'
IMAGE_TAG: 'el-10-v1'
SOURCE_DIR: 'environments/el-10'

- name: Dump image
run: ./internal-scripts/ci-cd/build-docker-images/dump-image.sh
env:
IMAGE_NAME: 'ghcr.io/fullstaq-ruby/server-edition-ci-images'
IMAGE_TAG: 'el-10-v1'
- name: Archive artifact
run: ./internal-scripts/ci-cd/upload-artifact.sh
env:
ARTIFACT_NAME: 'docker-image-el-10'
ARTIFACT_PATH: output
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}

build_docker_image_el_9:
name: 'Build Docker image [el-9]'
runs-on: ubuntu-24.04
Expand Down Expand Up @@ -960,6 +1002,7 @@ jobs:
- build_docker_image_debian_11
- build_docker_image_debian_12
- build_docker_image_debian_13
- build_docker_image_el_10
- build_docker_image_el_9
- build_docker_image_ubuntu_22_04
- build_docker_image_ubuntu_24_04
Expand Down Expand Up @@ -1083,6 +1126,20 @@ jobs:
with:
name: 'docker-image-debian-13'
path: artifacts
- name: Download Docker image artifact [el-10] from Google Cloud
run: ./internal-scripts/ci-cd/download-artifact.sh
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
env:
ARTIFACT_NAME: 'docker-image-el-10'
ARTIFACT_PATH: artifacts
CLEAR: true
CI_ARTIFACTS_BUCKET: ${{ vars.CI_ARTIFACTS_BUCKET }}
- name: Archive Docker image artifact [el-10] to Github
uses: actions/upload-artifact@v4
if: contains(inputs.necessary_jobs, ';Build Docker image el-10;')
with:
name: 'docker-image-el-10'
path: artifacts
- name: Download Docker image artifact [el-9] from Google Cloud
run: ./internal-scripts/ci-cd/download-artifact.sh
if: contains(inputs.necessary_jobs, ';Build Docker image el-9;')
Expand Down Expand Up @@ -1284,6 +1341,9 @@ jobs:
|| (needs.build_docker_image_debian_13.result != 'success'
&& (needs.build_docker_image_debian_13.result != 'skipped'
|| contains(inputs.necessary_jobs, ';Build Docker image debian-13;')))
|| (needs.build_docker_image_el_10.result != 'success'
&& (needs.build_docker_image_el_10.result != 'skipped'
|| contains(inputs.necessary_jobs, ';Build Docker image el-10;')))
|| (needs.build_docker_image_el_9.result != 'success'
&& (needs.build_docker_image_el_9.result != 'skipped'
|| contains(inputs.necessary_jobs, ';Build Docker image el-9;')))
Expand Down
615 changes: 614 additions & 1 deletion .github/workflows/ci-cd-publish-test-production.yml

Large diffs are not rendered by default.

591 changes: 590 additions & 1 deletion .github/workflows/ci-cd-publish-test-test.yml

Large diffs are not rendered by default.

13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,11 +381,22 @@ Fullstaq Ruby, ensures that the right version of Jemalloc is used. We are a bunc

> Red Hat Enterprise Linux (RHEL) is the original "Enterprise Linux". Compatible derivatives are CentOS, Rocky Linux and Alma Linux.

* Supported Enterprise Linux versions: 9, 8, 7
* Supported Enterprise Linux versions: 10, 9, 8
* Supported architectures: x86-64

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

Enterprise Linux 10:

[fullstaq-ruby]
name=fullstaq-ruby
baseurl=https://yum.fullstaqruby.org/el-10/$basearch
gpgcheck=0
repo_gpgcheck=1
enabled=1
gpgkey=https://raw.githubusercontent.com/fullstaq-ruby/server-edition/main/fullstaq-ruby.asc
sslverify=1

Enterprise Linux 9:

[fullstaq-ruby]
Expand Down
3 changes: 3 additions & 0 deletions config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ distributions: all
# distributions:
# - centos-8
# - el-9
# - el-10
# - debian-11
# - debian-12
# - ubuntu-22.04
Expand All @@ -119,6 +120,8 @@ distribution_exclusions:
- debian-12
- debian-13
- centos-8
- el-10
- ruby_minor_version: '3.2'
distros:
- debian-13
- el-10
45 changes: 45 additions & 0 deletions environments/el-10/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
FROM rockylinux/rockylinux:10

# Used to link container image to the repo:
# 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
LABEL org.opencontainers.image.source=https://github.com/fullstaq-ruby/server-edition

# If you make a change and you want to force users to re-pull the image
# (e.g. when your change adds a feature that our scripts rely on, or is
# breaking), then bump the version number in the `image_tag` file.

RUN set -x && \
dnf install -y dnf-plugins-core epel-release && \
dnf install -y --enablerepo epel --enablerepo devel --allowerasing \
findutils gcc gcc-c++ make patch bzip2 curl autoconf automake \
openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel \
gdbm-devel ncurses-devel \
rust-toolset && \
dnf clean all && \
rm -rf /tmp/* /var/tmp/*

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 && \
tar xzf sccache.tar.gz && \
mv sccache-*/sccache /usr/local/bin/ && \
chmod +x /usr/local/bin/sccache && \
chown root: /usr/local/bin/sccache && \
rm -rf sccache-* && \
mkdir /usr/local/lib/sccache && \
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/cc "$@"' > /usr/local/lib/sccache/cc && \
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/c++ "$@"' > /usr/local/lib/sccache/c++ && \
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/gcc "$@"' > /usr/local/lib/sccache/gcc && \
echo -e '#!/bin/sh\nexec /usr/local/bin/sccache /usr/bin/g++ "$@"' > /usr/local/lib/sccache/g++ && \
chmod +x /usr/local/lib/sccache/* && \
\
curl -fsSLo /sbin/matchhostfsowner.gz https://github.com/FooBarWidget/matchhostfsowner/releases/download/v1.0.1/matchhostfsowner-1.0.1-x86_64-linux.gz && \
gunzip /sbin/matchhostfsowner.gz && \
chmod +x,+s /sbin/matchhostfsowner && \
mkdir /etc/matchhostfsowner && \
echo 'app_account: builder' > /etc/matchhostfsowner/config.yml && \
\
groupadd --gid 9999 builder && \
adduser --uid 9999 --gid 9999 --password '#' builder && \
rm -rf /tmp/* /var/tmp/*

USER builder
ENTRYPOINT ["/sbin/matchhostfsowner"]
4 changes: 4 additions & 0 deletions environments/el-10/image_tag
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Bump this version whenever you've made a change and you want
# to force users to re-pull the image (e.g. when your change adds
# a feature that our scripts rely on, or is breaking).
1