Skip to content

Commit 0ca7a76

Browse files
committed
jenkins: Update AMI builders
Jenkins as of Nov 2024 requires at least Java 17 to build, which is newer than the default for a number of our test OSes. This commit gets Java 17 or later installed on all the OSes currently tested by the Open MPI testes. Rename jenkins-amis.hcl to jenkins-amis.pkr.hcl and update to HCL2 format, which is easier to read and what packer really wants. Signed-off-by: Brian Barrett <bbarrett@amazon.com>
1 parent 0426707 commit 0ca7a76

File tree

5 files changed

+568
-397
lines changed

5 files changed

+568
-397
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
*.pyc
2+
jenkins/jenkins-amis.pkr.hcl.*.txt

jenkins/build-amis.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
OPTIND=1
1818
packer_opts=""
19-
packer_file="jenkins-amis.hcl"
19+
packer_file="jenkins-amis.pkr.hcl"
2020

2121
while getopts "h?a:l" opt; do
2222
case "$opt" in

jenkins/customize-ami.sh

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ echo "==> Version: $VERSION_ID"
4040
echo "==> Architecture: $arch"
4141

4242
OPTIND=1 # Reset in case getopts has been used previously in the shell.
43-
run_test=0 # -b runs an ompi build test; useful for testing new AMIs
43+
run_test=1 # -b runs an ompi build test; useful for testing new AMIs
4444
clean_ami=1 # -t enables testing mode, where the AMI isn't cleaned up
4545
# after the test (so remote logins still work)
4646

@@ -60,6 +60,7 @@ while getopts "h?tb" opt; do
6060
done
6161

6262
pandoc_installed=0
63+
sphinx_installed=0
6364

6465
case $PLATFORM_ID in
6566
rhel|centos)
@@ -74,7 +75,15 @@ case $PLATFORM_ID in
7475
case $VERSION_ID in
7576
7.*)
7677
sudo yum -y install gcc gcc-c++ gcc-gfortran \
77-
java-11-openjdk-headless
78+
python3
79+
( cd $HOME
80+
curl -O https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-x64_bin.tar.gz
81+
tar xf openjdk-23.0.1_linux-x64_bin.tar.gz
82+
cd /usr/local
83+
sudo cp -rf $HOME/jdk-23.0.1/* .
84+
cd $HOME
85+
rm -rf openjdk-23.0.1_linux-x64_bin.tar.gz jdk-23.0.1
86+
)
7887
labels="${labels} gcc48"
7988
;;
8089
8.*)
@@ -84,6 +93,7 @@ case $PLATFORM_ID in
8493
sudo yum -y remove java-1.8.0-openjdk-headless
8594
sudo alternatives --set python /usr/bin/python3
8695
sudo pip3 install sphinx recommonmark docutils sphinx-rtd-theme
96+
sphinx_installed=1
8797
labels="${labels} gcc8"
8898
;;
8999
*)
@@ -106,6 +116,7 @@ case $PLATFORM_ID in
106116
echo "==> Installing packages"
107117
sudo yum -y update
108118
sudo yum -y groupinstall "Development Tools"
119+
sphinx_installed=1
109120
labels="${labels} linux"
110121
case $VERSION_ID in
111122
2)
@@ -114,7 +125,9 @@ case $PLATFORM_ID in
114125
java-17-amazon-corretto-headless libevent-devel hwloc-devel \
115126
hwloc gdb python3-pip python3-devel
116127
sudo pip install mock
117-
sudo pip3 install sphinx recommonmark docutils sphinx-rtd-theme
128+
# system python3 is linked against openssl 1.0, which doesn't work with
129+
# urllib3 2.0 or later. So pin to an older version of urllib :(.
130+
sudo pip3 install sphinx recommonmark docutils sphinx-rtd-theme 'urllib3<2'
118131
labels="${labels} amazon_linux_2-${arch} gcc7 clang7"
119132
;;
120133
*)
@@ -132,14 +145,16 @@ case $PLATFORM_ID in
132145
sudo DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
133146
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential gfortran \
134147
autoconf automake libtool flex hwloc libhwloc-dev git \
135-
default-jre awscli rman pandoc
148+
awscli rman pandoc
136149
pandoc_installed=1
150+
sphinx_installed=1
137151
labels="${labels} linux ubuntu_${VERSION_ID}-${arch}"
138152
case $VERSION_ID in
139153
18.04)
140154
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install \
141155
python-boto3 python-pip \
142156
python-mock \
157+
openjdk-17-jre-headless \
143158
gcc-4.8 g++-4.8 gfortran-4.8 \
144159
gcc-5 g++-5 gfortran-5 \
145160
gcc-6 g++-6 gfortran-6 \
@@ -153,18 +168,21 @@ case $PLATFORM_ID in
153168
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install gcc-multilib g++-multilib gfortran-multilib
154169
labels="${labels} 32bit_builds"
155170
fi
171+
# Sphinx has become too old for master on Ubuntu 18, so don't try to build there.
172+
sphinx_installed=0
156173
;;
157174
20.04)
158175
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install \
159176
python-is-python3 python3-boto3 python3-mock \
160177
python3-pip \
178+
openjdk-21-jdk-headless \
161179
gcc-7 g++-7 gfortran-7 \
162180
gcc-8 g++-8 gfortran-8 \
163181
gcc-9 g++-9 gfortran-9 \
164182
gcc-10 g++-10 gfortran-10 \
165183
clang-6.0 clang-7 clang-8 clang-9 clang-10 \
166184
clang-format-11 bsdutils
167-
sudo pip3 install sphinx recommonmark docutils sphinx-rtd-theme
185+
sudo pip3 install -U sphinx recommonmark docutils sphinx-rtd-theme
168186
labels="${labels} gcc7 gcc8 gcc9 gcc10 clang60 clang7 clang8 clang9 clang10"
169187
if test "$arch" = "x86_64" ; then
170188
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install gcc-multilib g++-multilib gfortran-multilib
@@ -175,6 +193,25 @@ case $PLATFORM_ID in
175193
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install \
176194
python-is-python3 python3-boto3 python3-mock \
177195
python3-pip \
196+
openjdk-21-jre-headless \
197+
gcc-9 g++-9 gfortran-9 \
198+
gcc-10 g++-10 gfortran-10 \
199+
gcc-11 g++-11 gfortran-11 \
200+
gcc-12 g++-12 gfortran-12 \
201+
clang-11 clang-12 clang-13 clang-14 \
202+
clang-format-14 bsdutils
203+
sudo pip3 install sphinx recommonmark docutils sphinx-rtd-theme
204+
labels="${labels} gcc9 gcc10 gcc11 gcc12 clang11 clang12 clang13 clang14"
205+
if test "$arch" = "x86_64" ; then
206+
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install gcc-multilib g++-multilib gfortran-multilib
207+
labels="${labels} 32bit_builds"
208+
fi
209+
;;
210+
24.04)
211+
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install \
212+
python-is-python3 python3-boto3 python3-mock \
213+
python3-pip \
214+
openjdk-21-jdk-headless \
178215
gcc-9 g++-9 gfortran-9 \
179216
gcc-10 g++-10 gfortran-10 \
180217
gcc-11 g++-11 gfortran-11 \
@@ -200,8 +237,9 @@ case $PLATFORM_ID in
200237
sles)
201238
sudo zypper -n update
202239
sudo zypper -n install gcc gcc-c++ gcc-fortran \
203-
autoconf automake libtool flex make gdb
240+
autoconf automake libtool flex make gdb git bzip2
204241
labels="${labels} linux sles_${VERSION_ID}-${arch}"
242+
sphinx_installed=1
205243
case $VERSION_ID in
206244
15.*)
207245
sudo zypper -n install \
@@ -268,9 +306,13 @@ if test $run_test != 0; then
268306
cd ompi
269307
./autogen.pl
270308
./configure --prefix=$HOME/install
271-
make -j 4 all
272-
make check
273-
make install
309+
if test "$sphinx_installed" = "1" ; then
310+
make -j 4 distcheck
311+
else
312+
make -j 4 all
313+
make check
314+
make install
315+
fi
274316
cd $HOME
275317
rm -rf ${HOME}/ompi ${HOME}/install
276318
echo "==> SUCCESS! Open MPI compiled!"

0 commit comments

Comments
 (0)