This is an automated email from the ASF dual-hosted git repository.

vatamane pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git


The following commit(s) were added to refs/heads/main by this push:
     new ceb0ca5  Add Almalinux 10
ceb0ca5 is described below

commit ceb0ca5f425d4bab516a67e937dafff78c55ca63
Author: Nick Vatamaniuc <[email protected]>
AuthorDate: Sun Jan 11 23:47:00 2026 -0500

    Add Almalinux 10
    
    This supercedes https://github.com/apache/couchdb-ci/pull/86 (just
    because I rebased it and then added a few tweaks).
    
    For Almalinux we won't install mozjs that's why we can make progress
    here.
---
 bin/yum-dependencies.sh    | 11 +++-----
 build.sh                   |  2 +-
 dockerfiles/almalinux-10   | 66 ++++++++++++++++++++++++++++++++++++++++++++++
 pull-all-couchdbdev-docker |  1 +
 4 files changed, 71 insertions(+), 9 deletions(-)

diff --git a/bin/yum-dependencies.sh b/bin/yum-dependencies.sh
index 25b1e1f..a121edc 100755
--- a/bin/yum-dependencies.sh
+++ b/bin/yum-dependencies.sh
@@ -152,17 +152,12 @@ popd
 
 # js packages, as long as we're not told to skip them
 if [[ $1 != "nojs" ]]; then
-  if [[ ${VERSION_ID} -lt 8 ]]; then
-  # config the CouchDB repo & install the JS packages
-    dnf install -y yum-utils
-    yum-config-manager --add-repo https://couchdb.apache.org/repo/couchdb.repo
-    # install the JS packages
-    dnf install -y couch-js-devel
-  elif [[ ${VERSION_ID} -eq 8 ]]; then
+  if [[ ${VERSION_ID} -eq 8 ]]; then
     dnf install -y mozjs60-devel
-  else
+  elif [[ ${VERSION_ID} -eq 9 ]]; then
     dnf install -y mozjs78-devel
   fi
+  # For 10 and up skip install mozjs, we'll use quickjs instead
 else
   # install js build-time dependencies only
   # we can't add the CouchDB repo here because the plat may not exist yet
diff --git a/build.sh b/build.sh
index 1ee74f8..db8142a 100755
--- a/build.sh
+++ b/build.sh
@@ -48,7 +48,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 #
 DEBIANS="debian-bullseye debian-bookworm debian-trixie"
 UBUNTUS="ubuntu-jammy ubuntu-noble"
-CENTOSES="almalinux-8 almalinux-9"
+CENTOSES="almalinux-8 almalinux-9 almalinux-10"
 
 PASSED_BUILDARGS="$buildargs"
 
diff --git a/dockerfiles/almalinux-10 b/dockerfiles/almalinux-10
new file mode 100644
index 0000000..90988a2
--- /dev/null
+++ b/dockerfiles/almalinux-10
@@ -0,0 +1,66 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+
+# NOTE: These are intended to be built using the arguments as
+# described in ../build.sh. See that script for more details.
+
+FROM almalinux:10
+
+# Java 21 installed via RPM: java-21-openjdk-devel
+
+# These are needed for the Clouseau integration
+ENV CLOUSEAU_JAVA_HOME=/opt/java/openjdk8
+COPY --from=ibm-semeru-runtimes:open-8-jre /opt/java/openjdk 
$CLOUSEAU_JAVA_HOME
+ENV PATH=/usr/local/lib/erlang/bin:"${PATH}"
+
+# Choose whether to install SpiderMonkey 1.8.5, default yes
+ARG js=js
+# Choose whether to install Erlang, default yes
+ARG erlang=erlang
+# Select version of Node, Erlang and Elixir to install
+ARG erlangversion=26.2.5.11
+ARG elixirversion=v1.18.4
+ARG nodeversion=20
+
+# Create Jenkins user and group
+RUN groupadd --gid 910 jenkins; \
+  useradd --uid 910 --gid jenkins --create-home jenkins
+
+# Copy couchdb-ci repo into root's home directory
+ADD --chown=root:root bin /root/couchdb-ci/bin/
+ADD --chown=root:root files /root/couchdb-ci/files/
+
+# Jenkins builds in /usr/src/couchdb.
+RUN mkdir -p /usr/src/couchdb; \
+  chown -R jenkins:jenkins /usr/src/couchdb
+
+# Add /usr/local/lib to global LD_LIBRARY_PATH for CentOS
+RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf
+
+# Install all dependencies, and optionally SM 1.8.5
+# This allows us to use the same Dockerfile for building SM
+RUN ERLANGVERSION=$erlangversion \
+  ELIXIRVERSION=$elixirversion \
+  NODEVERSION=$nodeversion \
+  /root/couchdb-ci/bin/install-dependencies.sh $js $erlang
+
+# Allow Jenkins to sudo
+RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
+
+USER jenkins
+
+# overwrite this with 'CMD []' in a dependent Dockerfile
+CMD ["/bin/bash"]
diff --git a/pull-all-couchdbdev-docker b/pull-all-couchdbdev-docker
index f399c2d..3cf770f 100644
--- a/pull-all-couchdbdev-docker
+++ b/pull-all-couchdbdev-docker
@@ -12,6 +12,7 @@ couchdbci-debian:bullseye-erlang:26.2.5.16
 couchdbci-debian:trixie-erlang:26.2.5.16
 couchdbci-ubuntu:noble-erlang-26.2.5.16
 couchdbci-ubuntu:jammy-erlang-26.2.5.16
+couchdbci-centos:10-erlang-26.2.5.16
 couchdbci-centos:9-erlang-26.2.5.16
 couchdbci-centos:8-erlang-26.2.5.16
 )

Reply via email to