From 6575118ff7c40a6db8cdc28e7a88029125a416c7 Mon Sep 17 00:00:00 2001 From: Jim Garlick Date: Mon, 9 Dec 2024 17:07:35 -0800 Subject: [PATCH] ci: migrate from focal to jammy, el8 Problem: focal CI builds are failing. There seems to be a linkage problem with libjansson in the fluxrm/flux-core:focal image. Move most focal builders to jammy. There seems to be a problem with the configure script generated for ompi 2.x and 3.x in jammy: checking for struct sockaddr_in... yes checking if --with-cuda is set... not set (--with-cuda=) ./configure: line 13031: syntax error near unexpected token `)' ./configure: line 13031: ` )' Move those builders to el8. Tidy up builder descriptions. --- .github/workflows/main.yml | 28 +++++++------- src/test/docker/jammy/Dockerfile | 63 ++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 src/test/docker/jammy/Dockerfile diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 27b0da4..b0662f2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,28 +22,28 @@ jobs: strategy: matrix: include: - - name: "focal - ompi v5.0.x, chain_lint" - image: "focal" + - name: "jammy - chain_lint" + image: "jammy" ompi_branch: "v5.0.0rc12" openpmix_branch: "v4.2.3" coverage: false env: chain_lint: t - - name: "el8 - ompi v5.0.x, distcheck" + - name: "el8 - distcheck" image: "el8" ompi_branch: "v5.0.0rc12" openpmix_branch: "v4.2.3" coverage: false env: DISTCHECK: t - - name: "el8 - pmix v3.2.3, ompi v4.1.4" + - name: "el8 - ompi v4.1.4" image: "el8" ompi_branch: "v4.1.4" openpmix_branch: "v3.2.3" coverage: false env: {} - - name: "coverage" - image: "focal" + - name: "jammy - coverage" + image: "jammy" ompi_branch: "v5.0.0rc12" openpmix_branch: "v4.2.3" coverage: true @@ -55,26 +55,26 @@ jobs: openpmix_branch: "v4.2.3" coverage: false env: {} - - name: "focal - ompi v4.1.x" - image: "focal" + - name: "jammy - ompi v4.1.x" + image: "jammy" ompi_branch: "v4.1.x" openpmix_branch: "v4.2.2" coverage: false env: {} - - name: "focal - ompi v4.0.x" - image: "focal" + - name: "jammy - ompi v4.0.x" + image: "jammy" ompi_branch: "v4.0.x" openpmix_branch: "v4.2.2" coverage: false env: {} - - name: "focal - ompi v3.1.x" - image: "focal" + - name: "el8 - ompi v3.1.x" + image: "el8" ompi_branch: "v3.1.x" openpmix_branch: "v4.2.2" coverage: false env: {} - - name: "focal - ompi v3.0.x" - image: "focal" + - name: "el8 - ompi v3.0.x" + image: "el8" ompi_branch: "v3.0.x" openpmix_branch: "v4.2.2" coverage: false diff --git a/src/test/docker/jammy/Dockerfile b/src/test/docker/jammy/Dockerfile new file mode 100644 index 0000000..4f0b0f3 --- /dev/null +++ b/src/test/docker/jammy/Dockerfile @@ -0,0 +1,63 @@ +FROM fluxrm/flux-core:jammy + +ARG USER=fluxuser +ARG UID=1000 +ARG OMPI_BRANCH=v5.0.x +ARG OPENPMIX_BRANCH=v4.2.4 + +RUN \ + if test "$USER" != "fluxuser"; then \ + sudo groupadd -g $UID $USER \ + && sudo useradd -g $USER -u $UID -d /home/$USER -m $USER \ + && sudo sh -c "printf \"$USER ALL= NOPASSWD: ALL\\n\" >> /etc/sudoers" \ + && sudo adduser $USER sudo ; \ + fi + +# remove installed mpich +RUN sudo apt purge -yy mpich libmpich-dev \ + && sudo apt clean + +# remove mca dir from hand-installed openpmix which will be overwritten below +RUN sudo rm -rf /usr/lib/pmix + +# install ompi prereqs +RUN sudo apt-get update \ + && sudo apt-get -qq install -y --no-install-recommends \ + libevent-dev \ + flex \ + openssh-client \ + && sudo apt clean \ + && sudo rm -rf /var/lib/apt/lists/* + +# build/install openpmix +RUN cd /tmp \ + && git clone -b ${OPENPMIX_BRANCH} \ + --recursive --depth=1 https://github.com/openpmix/openpmix \ + && cd openpmix \ + && git branch \ + && ./autogen.pl \ + && ./configure --prefix=/usr \ + --enable-debug --disable-sphinx \ + && make -j $(nproc) \ + && sudo make install \ + && cd .. \ + && rm -rf openpmix + +# build/install ompi +RUN cd /tmp \ + && git clone -b ${OMPI_BRANCH} \ + --recursive --depth=1 https://github.com/open-mpi/ompi \ + && cd ompi \ + && git branch \ + && ./autogen.pl \ + && ./configure --prefix=/usr \ + --disable-man-pages --enable-debug --enable-mem-debug \ + --with-pmix=external --with-libevent --disable-sphinx \ + && make -j $(nproc) \ + && sudo make install \ + && cd .. \ + && rm -rf ompi + +USER $USER +WORKDIR /home/$USER +