This is an automated email from the ASF dual-hosted git repository. vatamane pushed a commit to branch add-alma-10-new in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git
commit f22feb16059b5a248823714deeaade459430fc42 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 )
