Skip to content

Commit c728f52

Browse files
committed
add ubuntu noble numbat
1 parent 50564be commit c728f52

File tree

4 files changed

+77
-6
lines changed

4 files changed

+77
-6
lines changed

bin/apt-dependencies.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4343
. ${SCRIPTPATH}/detect-arch.sh >/dev/null
4444
. ${SCRIPTPATH}/detect-os.sh >/dev/null
4545
debians='(bullseye|bookworm)'
46-
ubuntus='(focal|jammy)'
46+
ubuntus='(focal|jammy|noble)'
4747
echo "Detected Ubuntu/Debian version: ${VERSION_CODENAME} arch: ${ARCH}"
4848

4949
# ubuntu docker image seems to be missing /etc/timezone...
@@ -118,9 +118,9 @@ EOF
118118
fi
119119

120120
# rest of python dependencies
121-
if [ "${VERSION_CODENAME}" == "bookworm" ]; then
122-
# On Debian bookworm, need the --break-system-package to into to default system location
123-
pip3 --default-timeout=10000 install --break-system-packages --upgrade sphinx_rtd_theme nose requests hypothesis==3.79.0
121+
if [ "${VERSION_CODENAME}" == "bookworm" -o "${VERSION_CODENAME}" == "noble" ]; then
122+
# On Debian bookworm and Ubuntu noble, need the --break-system-package to into to default system location
123+
apt-get -y --no-install-recommends install sphinx-rtd-theme-common python3-nose python3-requests python3-hypothesis
124124
else
125125
pip3 --default-timeout=10000 install --upgrade sphinx_rtd_theme nose requests hypothesis==3.79.0
126126
fi
@@ -144,7 +144,8 @@ fi
144144
# js packages, as long as we're not told to skip them
145145
if [ "$1" != "nojs" ]; then
146146
# older releases don't have libmozjs60+, and we provide 1.8.5
147-
if [ "${VERSION_CODENAME}" != "jammy" ] && \
147+
if [ "${VERSION_CODENAME}" != "noble" ] && \
148+
[ "${VERSION_CODENAME}" != "jammy" ] && \
148149
[ "${VERSION_CODENAME}" != "focal" ] && \
149150
[ "${VERSION_CODENAME}" != "bullseye" ] && \
150151
[ "${VERSION_CODENAME}" != "bookworm" ] && \
@@ -157,6 +158,9 @@ if [ "$1" != "nojs" ]; then
157158
apt-get install --no-install-recommends -y couch-libmozjs185-dev
158159
fi
159160
# newer releases have newer libmozjs
161+
if [ "${VERSION_CODENAME}" == "noble" ]; then
162+
apt-get install --no-install-recommends -y libmozjs-102-dev libmozjs-115-dev
163+
fi
160164
if [ "${VERSION_CODENAME}" == "focal" ]; then
161165
apt-get install --no-install-recommends -y libmozjs-68-dev
162166
fi

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4747
# script as well
4848
#
4949
DEBIANS="debian-bullseye debian-bookworm"
50-
UBUNTUS="ubuntu-focal ubuntu-jammy"
50+
UBUNTUS="ubuntu-focal ubuntu-jammy ubuntu-noble"
5151
CENTOSES="almalinux-8 almalinux-9"
5252

5353
XPLAT_BASE="debian-bookworm"

dockerfiles/ubuntu-noble

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
17+
# NOTE: These are intended to be built using the arguments as
18+
# described in ../build.sh. See that script for more details.
19+
20+
FROM ubuntu:noble
21+
22+
# Install Java
23+
ENV JAVA_HOME=/opt/java/openjdk
24+
COPY --from=eclipse-temurin:11 $JAVA_HOME $JAVA_HOME
25+
ENV PATH="${JAVA_HOME}/bin:${PATH}"
26+
27+
# These are needed for the Clouseau integration
28+
ENV CLOUSEAU_JAVA_HOME=/opt/java/openjdk8
29+
COPY --from=ibm-semeru-runtimes:open-8-jre /opt/java/openjdk $CLOUSEAU_JAVA_HOME
30+
ENV PATH=/usr/local/lib/erlang/bin:"${PATH}"
31+
32+
# Choose whether to install SpiderMonkey 1.8.5, default yes
33+
ARG js=js
34+
# Choose whether to install Erlang, default yes
35+
ARG erlang=erlang
36+
# Select version of Node, Erlang and Elixir to install
37+
ARG erlangversion=25.3.2.13
38+
ARG elixirversion=v1.17.2
39+
ARG nodeversion=18
40+
41+
# Create Jenkins user and group
42+
RUN groupadd --gid 910 jenkins; \
43+
useradd --uid 910 --gid jenkins --create-home jenkins
44+
45+
# Copy couchdb-ci repo into root's home directory
46+
ADD --chown=root:root bin /root/couchdb-ci/bin/
47+
ADD --chown=root:root files /root/couchdb-ci/files/
48+
49+
# Jenkins builds in /usr/src/couchdb.
50+
RUN mkdir -p /usr/src/couchdb; \
51+
chown -R jenkins:jenkins /usr/src/couchdb
52+
53+
# Install all dependencies, and optionally SM 1.8.5
54+
# This allows us to use the same Dockerfile for building SM
55+
RUN ERLANGVERSION=$erlangversion \
56+
ELIXIRVERSION=$elixirversion \
57+
NODEVERSION=$nodeversion \
58+
/root/couchdb-ci/bin/install-dependencies.sh $js $erlang
59+
60+
# Allow Jenkins to sudo
61+
RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
62+
63+
USER jenkins
64+
65+
# overwrite this with 'CMD []' in a dependent Dockerfile
66+
CMD ["/bin/bash"]

pull-all-couchdbdev-docker

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ couchdbci-debian:bookworm-erlang-25.3.2.13
88
couchdbci-debian:bookworm-erlang-26.2.5.2
99
couchdbci-centos:9-erlang-25.3.2.13
1010
couchdbci-centos:8-erlang-25.3.2.13
11+
couchdbci-ubuntu:noble-erlang-25.3.2.13
1112
couchdbci-ubuntu:jammy-erlang-25.3.2.13
1213
couchdbci-ubuntu:focal-erlang-25.3.2.13
1314
)

0 commit comments

Comments
 (0)