Skip to content

Commit ba53d28

Browse files
committed
ansible: add Ubuntu 24.04 Dockerfile configs with Clang 19
Refs: #4144
1 parent 5a1da01 commit ba53d28

File tree

3 files changed

+255
-0
lines changed

3 files changed

+255
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
FROM ubuntu:24.04
2+
3+
ENV LC_ALL C
4+
ENV USER {{ server_user }}
5+
ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }}
6+
ENV SHELL /bin/bash
7+
ENV HOME /home/{{ server_user }}
8+
ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9+
ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe
10+
ENV NODE_TEST_DIR /home/{{ server_user }}/tmp
11+
ENV OSTYPE linux-gnu
12+
ENV OSVARIANT docker
13+
ENV DESTCPU {{ arch }}
14+
ENV ARCH {{ arch }}
15+
ENV DEBIAN_FRONTEND noninteractive
16+
17+
RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y \
18+
ccache \
19+
g++ \
20+
gcc \
21+
clang-19 \
22+
git \
23+
openjdk-21-jre-headless \
24+
curl \
25+
python3-pip \
26+
python-is-python3 \
27+
libfontconfig1 \
28+
libtool \
29+
automake
30+
31+
RUN pip3 install tap2junit=={{ tap2junit_version }}
32+
33+
RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }}
34+
35+
RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }}
36+
37+
VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache
38+
39+
USER iojs:iojs
40+
41+
ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }}
42+
43+
CMD cd /home/iojs \
44+
&& curl https://ci.nodejs.org/jnlpJars/agent.jar -O \
45+
&& java -Xmx{{ server_ram|default('128m') }} \
46+
-jar /home/{{ server_user }}/agent.jar \
47+
-url {{ jenkins_url }} \
48+
-name {{ item.name }} \
49+
-secret {{ item.secret }}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
FROM arm32v7/ubuntu:24.04
2+
3+
ENV LC_ALL C
4+
ENV USER {{ server_user }}
5+
ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }}
6+
ENV SHELL /bin/bash
7+
ENV HOME /home/{{ server_user }}
8+
ENV PATH /usr/lib/ccache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9+
ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe
10+
ENV NODE_TEST_DIR /home/{{ server_user }}/tmp
11+
ENV OSTYPE linux-gnu
12+
ENV OSVARIANT docker
13+
ENV DESTCPU {{ arch }}
14+
ENV ARCH {{ arch }}
15+
ENV DEBIAN_FRONTEND noninteractive
16+
RUN apt-get update && apt-get dist-upgrade -y && apt-get install -y ccache \
17+
g++ \
18+
gcc \
19+
clang-19 \
20+
git \
21+
openjdk-21-jre-headless \
22+
pkg-config \
23+
curl \
24+
python3-pip \
25+
python-is-python3 \
26+
libfontconfig1
27+
28+
RUN pip3 install tap2junit=={{ tap2junit_version }}
29+
30+
RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }}
31+
32+
RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }}
33+
34+
VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache
35+
36+
USER iojs:iojs
37+
38+
ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }}
39+
40+
CMD cd /home/iojs \
41+
&& curl https://ci.nodejs.org/jnlpJars/agent.jar -O \
42+
&& java -Xmx{{ server_ram|default('128m') }} \
43+
-jar /home/{{ server_user }}/agent.jar \
44+
-url {{ jenkins_url }} \
45+
-name {{ item.name }} \
46+
-secret {{ item.secret }}
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
FROM ubuntu:24.04
2+
3+
ENV LC_ALL C
4+
ENV USER {{ server_user }}
5+
ENV JOBS {{ server_jobs | default(ansible_processor_vcpus) }}
6+
ENV SHELL /bin/bash
7+
ENV HOME /home/{{ server_user }}
8+
ENV PATH /usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9+
ENV NODE_COMMON_PIPE /home/{{ server_user }}/test.pipe
10+
ENV NODE_TEST_DIR /home/{{ server_user }}/tmp
11+
ENV OSTYPE linux-gnu
12+
ENV OSVARIANT docker
13+
ENV DESTCPU {{ arch }}
14+
ENV ARCH {{ arch }}
15+
ENV DEBIAN_FRONTEND noninteractive
16+
17+
RUN apt-get update && apt-get install apt-utils -y && \
18+
apt-get dist-upgrade -y && apt-get install -y \
19+
ccache \
20+
g++ \
21+
gcc \
22+
clang-19 \
23+
git \
24+
openjdk-21-jre-headless \
25+
pkg-config \
26+
curl \
27+
python3-pip \
28+
python-is-python3 \
29+
libfontconfig1 \
30+
libtool \
31+
automake
32+
33+
RUN pip3 install tap2junit=={{ tap2junit_version }}
34+
35+
RUN addgroup --gid {{ server_user_gid.stdout_lines[0] }} {{ server_user }}
36+
37+
RUN adduser --gid {{ server_user_gid.stdout_lines[0] }} --uid {{ server_user_uid.stdout_lines[0] }} --disabled-password --gecos {{ server_user }} {{ server_user }}
38+
39+
ENV ICU69DIR=/opt/icu-69.1 \
40+
ICU71DIR=/opt/icu-71.1 \
41+
ICU73DIR=/opt/icu-73.2
42+
43+
RUN for ICU_ENV in $(env | grep ICU..DIR); do \
44+
ICU_PREFIX=$(echo $ICU_ENV | cut -d '=' -f 2) && \
45+
ICU_VERSION=$(echo $ICU_PREFIX | cut -d '-' -f 2) && \
46+
ICU_MAJOR=$(echo $ICU_VERSION | cut -d '.' -f 1) && \
47+
ICU_MINOR=$(echo $ICU_VERSION | cut -d '.' -f 2) && \
48+
mkdir -p /tmp/icu-$ICU_VERSION && \
49+
cd /tmp/icu-$ICU_VERSION && \
50+
curl -sL "https://github.com/unicode-org/icu/releases/download/release-$ICU_MAJOR-$ICU_MINOR/icu4c-${ICU_MAJOR}_$ICU_MINOR-src.tgz" | tar zxv --strip=1 && \
51+
cd source && \
52+
./runConfigureICU Linux --prefix=$ICU_PREFIX && \
53+
make -j $JOBS && \
54+
make install && \
55+
rm -rf /tmp/icu-$ICU_VERSION; \
56+
done
57+
58+
ENV OPENSSL111VER 1.1.1w
59+
ENV OPENSSL111DIR /opt/openssl-$OPENSSL111VER
60+
61+
RUN mkdir -p /tmp/openssl_$OPENSSL111VER && \
62+
cd /tmp/openssl_$OPENSSL111VER && \
63+
curl -sL https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-$OPENSSL111VER.tar.gz | tar zxv --strip=1 && \
64+
./config --prefix=$OPENSSL111DIR && \
65+
make -j $JOBS && \
66+
make install && \
67+
rm -rf /tmp/openssl_$OPENSSL111VER
68+
69+
# OpenSSL FIPS validation occurs post-release, and not for every version.
70+
# See https://www.openssl.org/docs/fips.html and the version documented in the
71+
# certificate and security policy.
72+
ENV OPENSSL30FIPSVER 3.0.8
73+
ENV OPENSSL30FIPSDIR /opt/openssl-$OPENSSL30FIPSVER-fips
74+
75+
RUN mkdir -p /tmp/openssl-$OPENSSL30FIPSVER && \
76+
cd /tmp/openssl-$OPENSSL30FIPSVER && \
77+
curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL30FIPSVER/openssl-$OPENSSL30FIPSVER.tar.gz | tar zxv --strip=1 && \
78+
./config --prefix=$OPENSSL30FIPSDIR enable-fips && \
79+
make -j $JOBS && \
80+
make install && \
81+
rm -rf /tmp/openssl-$OPENSSL30FIPSVER
82+
# Install the FIPS provider. Update OpenSSL config file to enable FIPS.
83+
RUN LD_LIBRARY_PATH=$OPENSSL30FIPSDIR/lib64 $OPENSSL30FIPSDIR/bin/openssl fipsinstall \
84+
-module $OPENSSL30FIPSDIR/lib64/ossl-modules/fips.so -provider_name fips \
85+
-out $OPENSSL30FIPSDIR/ssl/fipsmodule.cnf && \
86+
sed -i -r "s|^# (.include fipsmodule.cnf)|.include $OPENSSL30FIPSDIR\/ssl\/fipsmodule.cnf|g" $OPENSSL30FIPSDIR/ssl/openssl.cnf && \
87+
sed -i -r '/^providers = provider_sect/a alg_section = evp_properties' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \
88+
sed -i -r 's/^# (fips = fips_sect)/\1/g' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \
89+
sed -i -r 's/^# (activate = 1)/\1/g' $OPENSSL30FIPSDIR/ssl/openssl.cnf && \
90+
echo "\n[evp_properties]\ndefault_properties = \"fips=yes\"\n" >> $OPENSSL30FIPSDIR/ssl/openssl.cnf
91+
92+
ENV OPENSSL30VER 3.0.14+quic
93+
ENV OPENSSL30DIR /opt/openssl-$OPENSSL30VER
94+
95+
RUN mkdir -p /tmp/openssl-$OPENSSL30VER && \
96+
cd /tmp/openssl-$OPENSSL30VER && \
97+
git clone https://github.com/quictls/openssl.git -b openssl-$OPENSSL30VER --depth 1 && \
98+
cd openssl && \
99+
./config --prefix=$OPENSSL30DIR && \
100+
make -j $JOBS && \
101+
make install && \
102+
rm -rf /tmp/openssl-$OPENSSL30VER
103+
104+
ENV OPENSSL31VER 3.1.7
105+
ENV OPENSSL31DIR /opt/openssl-$OPENSSL31VER
106+
107+
RUN mkdir -p /tmp/openssl-$OPENSSL31VER && \
108+
cd /tmp/openssl-$OPENSSL31VER && \
109+
curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL31VER/openssl-$OPENSSL31VER.tar.gz | tar zxv --strip=1 && \
110+
./config --prefix=$OPENSSL31DIR && \
111+
make -j $JOBS && \
112+
make install && \
113+
rm -rf /tmp/openssl-$OPENSSL31VER
114+
115+
ENV OPENSSL32VER 3.2.3
116+
ENV OPENSSL32DIR /opt/openssl-$OPENSSL32VER
117+
118+
RUN mkdir -p /tmp/openssl-$OPENSSL32VER && \
119+
cd /tmp/openssl-$OPENSSL32VER && \
120+
curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL32VER/openssl-$OPENSSL32VER.tar.gz | tar zxv --strip=1 && \
121+
./config --prefix=$OPENSSL32DIR && \
122+
make -j $JOBS && \
123+
make install && \
124+
rm -rf /tmp/openssl-$OPENSSL32VER
125+
126+
ENV OPENSSL35VER 3.5.0
127+
ENV OPENSSL35DIR /opt/openssl-$OPENSSL35VER
128+
129+
RUN mkdir -p /tmp/openssl-$OPENSSL35VER && \
130+
cd /tmp/openssl-$OPENSSL35VER && \
131+
curl -sL https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL35VER/openssl-$OPENSSL35VER.tar.gz | tar zxv --strip=1 && \
132+
./config --prefix=$OPENSSL35DIR && \
133+
make -j $JOBS && \
134+
make install && \
135+
rm -rf /tmp/openssl-$OPENSSL35VER
136+
137+
ENV ZLIBVER 1.2.13
138+
ENV ZLIB12DIR /opt/zlib_$ZLIBVER
139+
140+
RUN mkdir -p /tmp/zlib_$ZLIBVER && \
141+
cd /tmp/zlib_$ZLIBVER && \
142+
curl -sL https://zlib.net/fossils/zlib-$ZLIBVER.tar.gz | tar zxv --strip=1 && \
143+
./configure --prefix=$ZLIB12DIR && \
144+
make -j $JOBS && \
145+
make install && \
146+
rm -rf /tmp/zlib_$ZLIBVER
147+
148+
VOLUME /home/{{ server_user }}/ /home/{{ server_user }}/.ccache
149+
150+
USER iojs:iojs
151+
152+
ENV CCACHE_TEMPDIR /home/iojs/.ccache/{{ item.name }}
153+
154+
CMD cd /home/iojs \
155+
&& curl https://ci.nodejs.org/jnlpJars/agent.jar -O \
156+
&& java -Xmx{{ server_ram|default('128m') }} \
157+
-jar /home/{{ server_user }}/agent.jar \
158+
-url {{ jenkins_url }} \
159+
-name {{ item.name }} \
160+
-secret {{ item.secret }}

0 commit comments

Comments
 (0)