From 46f30d16fd4c36f4db2cc5a406dbac038314ca84 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 19:53:09 -0400 Subject: [PATCH 01/38] Swap to Spack and matrix-based GHA for more reliability --- .github/Dockerfile | 29 -------- .github/docker-compose.yml | 124 ++++++++++++------------------- .github/spack.yaml | 35 +++++++++ .github/workflows/ci_checks.yaml | 43 +++++++---- 4 files changed, 111 insertions(+), 120 deletions(-) delete mode 100644 .github/Dockerfile create mode 100644 .github/spack.yaml diff --git a/.github/Dockerfile b/.github/Dockerfile deleted file mode 100644 index 75e9f40..0000000 --- a/.github/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -#Built for testing, not designed for application use. - -FROM ubuntu:20.04 -#="open-mpi/ompi" for github.com/open-mpi/ompi -ARG OPENMPI_REPO="open-mpi/ompi" -#="tags" or ="heads", for tag or branch name -ARG OPENMPI_VERS_PREFIX="tags" -#="v5.0.0rc10" or ="v5.0.x", ie tag name or branch name. -ARG OPENMPI_VERS="v5.0.0rc10" -run echo Using https://github.com/${OPENMPI_REPO}/git/refs/${OPENMPI_VERS_PREFIX}/${OPENMPI_VERS} - -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential python3 m4 autoconf automake libtool flex git zlib1g-dev - -#Add files listing latest commit for this branch/tag, which invalidates the clone -#when a change has been pushed. -ADD https://api.github.com/repos/${OPENMPI_REPO}/git/refs/${OPENMPI_VERS_PREFIX}/${OPENMPI_VERS} commit_info -RUN git clone --recursive --branch ${OPENMPI_VERS} --depth 1 https://github.com/${OPENMPI_REPO}.git ompi_src && \ - mkdir ompi_build ompi_install && cd ompi_src && export AUTOMAKE_JOBS=8 && ./autogen.pl && cd ../ompi_build && ../ompi_src/configure --prefix=/ompi_install --disable-man-pages --with-ft=ulfm && make install -j8 && cd .. - - -#New build stage, tosses out src/build trees from openmpi -FROM ubuntu:20.04 -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential cmake ssh zlib1g-dev -COPY . ./fenix_src -COPY --from=0 ompi_install/ /ompi_install/ -ENV PATH="$PATH:/ompi_install/bin" -RUN mkdir fenix_build fenix_install && cd fenix_build && cmake ../fenix_src -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/ompi_install/bin/mpicc \ - -DFENIX_EXAMPLES=ON -DFENIX_TESTS=ON -DCMAKE_INSTALL_PREFIX=../fenix_install -DMPIEXEC_PREFLAGS="--allow-run-as-root;--map-by;:OVERSUBSCRIBE" && make install -j8 -CMD ["sh", "-c", "cd fenix_build && ctest --verbose --timeout 60"] diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index b29e083..e7f0c2d 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -1,81 +1,53 @@ -version: "3.9" - -x-fenix: &fenix - build: &fenix-build - context: ./ - dockerfile: .github/Dockerfile - args: - OPENMPI_REPO: open-mpi/ompi - OPENMPI_VERS_PREFIX: tags - OPENMPI_VERS: v5.0.0rc10 - #Caches should be manually scoped, or they'll conflict. - x-bake: - cache-from: - - type=gha,scope=default - cache-to: - - type=gha,scope=default,mode=max - services: - #fenix_ompi_5rc10: - # <<: *fenix - # image: "fenix:ompi_5rc10" - # build: - # <<: *fenix-build - # x-bake: - # cache-from: - # - type=gha,scope=ompi_5rc10 - # cache-to: - # - type=gha,scope=ompi_5rc10,mode=max - - fenix_ompi_5: - <<: *fenix - image: "fenix:ompi_5" + bootstrap: + image: "local/bootstrap" build: - <<: *fenix-build + dockerfile_inline: | + FROM spack/ubuntu-focal:0.21.3 + VOLUME /configs + ARG ompi_version + ENV ompi_version=$$ompi_version + CMD cp /configs/spack.yaml . && \ + spack -e . add openmpi@$${ompi_version} && \ + spack -e . containerize >/configs/spack.Dockerfile args: - - OPENMPI_VERS_PREFIX=heads - - OPENMPI_VERS=v5.0.x - x-bake: - cache-from: - - type=gha,scope=ompi_5 - cache-to: - - type=gha,scope=ompi_5,mode=max - - fenix_ompi_main: - <<: *fenix - image: "fenix:ompi_main" + ompi_version: main + no_cache: true + pull_policy: build + volumes: + - .github/:/configs + + env: + image: "local/env" build: - <<: *fenix-build - args: - - OPENMPI_VERS_PREFIX=heads - - OPENMPI_VERS=main - x-bake: - cache-from: - - type=gha,scope=ompi_main - cache-to: - - type=gha,scope=ompi_main,mode=max - - fenix_icldisco_latest: - <<: *fenix - image: "fenix:icldisco_latest" + # Generated by spack in a previous workflow step + dockerfile: .github/spack.Dockerfile + depends_on: + bootstrap: + condition: service_completed_successfully + required: true + pull_policy: build + + + fenix: + image: "local/fenix" build: - <<: *fenix-build - args: - - OPENMPI_REPO=icldisco/ompi - - OPENMPI_VERS_PREFIX=heads - - OPENMPI_VERS=ulfm/latest - x-bake: - cache-from: - - type=gha,scope=icldisco_latest - cache-to: - - type=gha,scope=icldisco_latest,mode=max - - #fenix_icldisco_experimental: - # <<: *fenix - # image: fenix/icldisco - # build: - # <<: *fenix-build - # args: - # - OPENMPI_REPO=icldisco/ompi - # - OPENMPI_VERS_PREFIX=heads - # - OPENMPI_VERS=ulfm/experimental + dockerfile_inline: | + FROM local/env + COPY . /fenix + RUN . /opt/spack-environment/activate.sh && \ + mkdir -p /fenix/build && \ + rm -r /fenix/build/* && \ + cd /fenix/build && \ + cmake /fenix \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=mpicc \ + -DFENIX_EXAMPLES=ON \ + -DFENIX_TESTS=ON \ + -DMPIEXEC_PREFLAGS="--allow-run-as-root;--map-by;:oversubscribe" && \ + make -j + + WORKDIR /fenix/build + ENTRYPOINT ["/entrypoint.sh"] + CMD ["ctest", "--output-on-failure"] + pull_policy: build diff --git a/.github/spack.yaml b/.github/spack.yaml new file mode 100644 index 0000000..eb1df62 --- /dev/null +++ b/.github/spack.yaml @@ -0,0 +1,35 @@ +spack: + packages: + openmpi: + variants: +internal-hwloc +internal-libevent +internal-pmix + concretizer: + unify: true + reuse: true + + container: + format: docker + strip: false + images: + os: ubuntu:22.04 + spack: latest + os_packages: + build: + - build-essential + - autotools-dev + - libevent-dev + - pkg-config + - python3 + - m4 + - autoconf + - automake + - libtool + - flex + - git + - zlib1g-dev + - openssh-server + - libperl-dev + - pkg-config + - numactl + final: + - build-essential + - cmake diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index ebeeef8..25cc4f0 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -12,20 +12,33 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: docker/setup-buildx-action@v2 - - name: Build - uses: docker/bake-action@master + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Bootstrap the environment Dockerfile + uses: docker/bake-action@v5 + with: + files: .github/docker-compose.yml + load: true + target: bootstrap + + - name: Build the environment + uses: docker/bake-action@v5 with: - files: | - .github/docker-compose.yml + files: .github/docker-compose.yml load: true - - name: Test open-mpi v5.0.x - if: success() || failure() - run: docker run fenix:ompi_5 - - name: Test open-mpi main - if: success() || failure() - run: docker run fenix:ompi_main - - name: Test icldisco latest - if: success() || failure() - run: docker run fenix:icldisco_latest + target: env + + - name: Build Fenix + uses: docker/bake-action@v5 + with: + source: . + files: .github/docker-compose.yml + load: true + target: fenix + + - name: Test Fenix + run: docker run local/fenix From 151eede1e5ff777667b1ad489fc27df4d5db4e9e Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 19:57:09 -0400 Subject: [PATCH 02/38] Syntax fix --- .github/workflows/ci_checks.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 25cc4f0..834bde5 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -1,7 +1,6 @@ name: Build & Test on: - push: pull_request_target: types: - opened @@ -23,14 +22,14 @@ jobs: with: files: .github/docker-compose.yml load: true - target: bootstrap + targets: bootstrap - name: Build the environment uses: docker/bake-action@v5 with: files: .github/docker-compose.yml load: true - target: env + targets: env - name: Build Fenix uses: docker/bake-action@v5 @@ -38,7 +37,7 @@ jobs: source: . files: .github/docker-compose.yml load: true - target: fenix + targets: fenix - name: Test Fenix run: docker run local/fenix From ca622169e94485b82f52f60f9e11b30f1645287a Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 19:58:51 -0400 Subject: [PATCH 03/38] Add push trigger back --- .github/workflows/ci_checks.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 834bde5..36172d1 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -1,6 +1,7 @@ name: Build & Test on: + push: pull_request_target: types: - opened From a8bf42a620d8818ec7ed4cdd77f9be69386ebf3c Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:01:07 -0400 Subject: [PATCH 04/38] Specify a work directory --- .github/workflows/ci_checks.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 36172d1..7edc7b0 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -24,6 +24,7 @@ jobs: files: .github/docker-compose.yml load: true targets: bootstrap + workdir: . - name: Build the environment uses: docker/bake-action@v5 @@ -31,6 +32,7 @@ jobs: files: .github/docker-compose.yml load: true targets: env + workdir: . - name: Build Fenix uses: docker/bake-action@v5 @@ -39,6 +41,7 @@ jobs: files: .github/docker-compose.yml load: true targets: fenix + workdir: . - name: Test Fenix run: docker run local/fenix From ac15e695cf50c3a419606482cad34603f31426ba Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:05:09 -0400 Subject: [PATCH 05/38] Actually run the bootstrap container --- .github/workflows/ci_checks.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 7edc7b0..a15226f 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -18,13 +18,16 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Bootstrap the environment Dockerfile + - name: Bake the bootstrap docker image uses: docker/bake-action@v5 with: files: .github/docker-compose.yml load: true targets: bootstrap workdir: . + + - name: Bootstrap the environment Dockerfile + run: docker run local/bootstrap - name: Build the environment uses: docker/bake-action@v5 From 9c203280f29dc1d484d6a0e834d971f2eed22f08 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:11:33 -0400 Subject: [PATCH 06/38] Swap driver from docker-container to docker --- .github/workflows/ci_checks.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index a15226f..a2fb848 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -17,6 +17,8 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + with: + driver: docker - name: Bake the bootstrap docker image uses: docker/bake-action@v5 From 7714f03d698e0cba5feef8a6fe9ed87b2b8d2a94 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:13:46 -0400 Subject: [PATCH 07/38] Debug output --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index e7f0c2d..bd47055 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -7,7 +7,7 @@ services: VOLUME /configs ARG ompi_version ENV ompi_version=$$ompi_version - CMD cp /configs/spack.yaml . && \ + CMD ls . && ls / && ls /configs && cp /configs/spack.yaml . && \ spack -e . add openmpi@$${ompi_version} && \ spack -e . containerize >/configs/spack.Dockerfile args: From 6a44ab4fb4a51e2801502146feb1d26de31a7212 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:18:47 -0400 Subject: [PATCH 08/38] Manually set volume --- .github/workflows/ci_checks.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index a2fb848..882041c 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -17,8 +17,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - with: - driver: docker - name: Bake the bootstrap docker image uses: docker/bake-action@v5 @@ -29,7 +27,7 @@ jobs: workdir: . - name: Bootstrap the environment Dockerfile - run: docker run local/bootstrap + run: docker run -v .github:/config local/bootstrap - name: Build the environment uses: docker/bake-action@v5 From 9c277f0d08544618e77a6b838bcf22f366373a98 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:22:24 -0400 Subject: [PATCH 09/38] Use absolute path --- .github/workflows/ci_checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 882041c..eabaed2 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -27,7 +27,7 @@ jobs: workdir: . - name: Bootstrap the environment Dockerfile - run: docker run -v .github:/config local/bootstrap + run: docker run -v ${GITHUB_WORKSPACE}/.github:/config local/bootstrap - name: Build the environment uses: docker/bake-action@v5 From e24010fc4eec0f841ec395c28fb057ab3504aa4c Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:25:19 -0400 Subject: [PATCH 10/38] Fix dir name --- .github/workflows/ci_checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index eabaed2..fb89bf1 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -27,7 +27,7 @@ jobs: workdir: . - name: Bootstrap the environment Dockerfile - run: docker run -v ${GITHUB_WORKSPACE}/.github:/config local/bootstrap + run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs local/bootstrap - name: Build the environment uses: docker/bake-action@v5 From 941f18555e8c7a3d81e02461ee43d25024a88bed Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:37:02 -0400 Subject: [PATCH 11/38] Have spack find externals before installing MPI --- .github/docker-compose.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index bd47055..1a9bdda 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -7,9 +7,10 @@ services: VOLUME /configs ARG ompi_version ENV ompi_version=$$ompi_version - CMD ls . && ls / && ls /configs && cp /configs/spack.yaml . && \ + CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${ompi_version} && \ - spack -e . containerize >/configs/spack.Dockerfile + spack -e . containerize >/configs/spack.Dockerfile && \ + sed -i -e 's/spack install/spack externals find --all \&\& spack install/;' /configs/spack.Dockerfile args: ompi_version: main no_cache: true From 0bc06f67a0c7e64fc65ada50735650158bcdea49 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 20:39:07 -0400 Subject: [PATCH 12/38] Fix typo --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 1a9bdda..816ddf4 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -10,7 +10,7 @@ services: CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${ompi_version} && \ spack -e . containerize >/configs/spack.Dockerfile && \ - sed -i -e 's/spack install/spack externals find --all \&\& spack install/;' /configs/spack.Dockerfile + sed -i -e 's/spack install/spack external find --all \&\& spack install/;' /configs/spack.Dockerfile args: ompi_version: main no_cache: true From 4f664eed2fd78006374e40629474bed16b7db1cf Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 21:05:30 -0400 Subject: [PATCH 13/38] Avoid building openssl (2 minutes) --- .github/docker-compose.yml | 2 +- .github/spack.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 816ddf4..8214a80 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -10,7 +10,7 @@ services: CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${ompi_version} && \ spack -e . containerize >/configs/spack.Dockerfile && \ - sed -i -e 's/spack install/spack external find --all \&\& spack install/;' /configs/spack.Dockerfile + sed -i -e 's/spack install/spack external find --all --not-buildable \&\& spack install/;' /configs/spack.Dockerfile args: ompi_version: main no_cache: true diff --git a/.github/spack.yaml b/.github/spack.yaml index eb1df62..2c638dd 100644 --- a/.github/spack.yaml +++ b/.github/spack.yaml @@ -27,6 +27,7 @@ spack: - git - zlib1g-dev - openssh-server + - openssl - libperl-dev - pkg-config - numactl From 9ee9b8a602e6b9d42a41d4ffded61a86260aae83 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 21:06:04 -0400 Subject: [PATCH 14/38] Try forcing the normal image name --- .github/workflows/ci_checks.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index fb89bf1..4bead7b 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -36,6 +36,7 @@ jobs: load: true targets: env workdir: . + set: env.image.name=local/env - name: Build Fenix uses: docker/bake-action@v5 From 0e748557a60a0007307e46b9501eff71c9155a7c Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Tue, 8 Oct 2024 21:09:07 -0400 Subject: [PATCH 15/38] Retry setting image name --- .github/workflows/ci_checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 4bead7b..8066e4c 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -36,7 +36,7 @@ jobs: load: true targets: env workdir: . - set: env.image.name=local/env + set: env.tags=local/env:latest - name: Build Fenix uses: docker/bake-action@v5 From 141da54484062d0816e6ac44f945e63616b8cf7b Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 9 Oct 2024 17:41:32 -0400 Subject: [PATCH 16/38] Update ci_checks.yaml --- .github/workflows/ci_checks.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 8066e4c..7e0cbee 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -33,10 +33,9 @@ jobs: uses: docker/bake-action@v5 with: files: .github/docker-compose.yml - load: true targets: env workdir: . - set: env.tags=local/env:latest + set: env.output=type=docker,name= - name: Build Fenix uses: docker/bake-action@v5 From 8d840fb95033fa273f3eebcc24d422cf09b2c63e Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 9 Oct 2024 18:12:25 -0400 Subject: [PATCH 17/38] Setup image caching --- .github/workflows/ci_checks.yaml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 7e0cbee..cccf672 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -22,9 +22,12 @@ jobs: uses: docker/bake-action@v5 with: files: .github/docker-compose.yml - load: true targets: bootstrap workdir: . + set: | + *.output=type=docker,name= + *.cache-from=type=gha,scope= + *.cache-to=type=gha,mode=max,scope= - name: Bootstrap the environment Dockerfile run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs local/bootstrap @@ -35,16 +38,22 @@ jobs: files: .github/docker-compose.yml targets: env workdir: . - set: env.output=type=docker,name= + set: | + *.output=type=docker,name= + *.cache-from=type=gha,scope= + *.cache-to=type=gha,mode=max,scope= - name: Build Fenix uses: docker/bake-action@v5 with: source: . files: .github/docker-compose.yml - load: true targets: fenix workdir: . + set: | + *.output=type=docker,name= + *.cache-from=type=gha,scope= + *.cache-to=type=gha,mode=max,scope= - name: Test Fenix run: docker run local/fenix From 352ac38a9cae0ea119aa1283c23081ae162cd096 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 9 Oct 2024 18:36:57 -0400 Subject: [PATCH 18/38] Update ci_checks.yaml --- .github/workflows/ci_checks.yaml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index cccf672..887a332 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -25,9 +25,9 @@ jobs: targets: bootstrap workdir: . set: | - *.output=type=docker,name= - *.cache-from=type=gha,scope= - *.cache-to=type=gha,mode=max,scope= + *.output=type=docker,name=local/bootstrap + *.cache-from=type=gha,scope=local/bootstrap + *.cache-to=type=gha,mode=max,scope=local/bootstrap - name: Bootstrap the environment Dockerfile run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs local/bootstrap @@ -39,9 +39,9 @@ jobs: targets: env workdir: . set: | - *.output=type=docker,name= - *.cache-from=type=gha,scope= - *.cache-to=type=gha,mode=max,scope= + *.output=type=docker,name=local/env + *.cache-from=type=gha,scope=local/env + *.cache-to=type=gha,mode=max,scope=local/env - name: Build Fenix uses: docker/bake-action@v5 @@ -51,9 +51,8 @@ jobs: targets: fenix workdir: . set: | - *.output=type=docker,name= - *.cache-from=type=gha,scope= - *.cache-to=type=gha,mode=max,scope= + *.output=type=docker,name=local/fenix + *.cache-from=type=gha,scope=local/env - name: Test Fenix run: docker run local/fenix From f680e169a7d9716e6db7cb587cacb1a998d64244 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 9 Oct 2024 18:57:28 -0400 Subject: [PATCH 19/38] Back to docker driver Whoops --- .github/workflows/ci_checks.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 887a332..0857ac6 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -17,6 +17,8 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + with: + driver: docker - name: Bake the bootstrap docker image uses: docker/bake-action@v5 From 6a75a3fe7aa537bbd9fa7e026132f8a5550d1eb5 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 9 Oct 2024 19:04:24 -0400 Subject: [PATCH 20/38] Update ci_checks.yaml --- .github/workflows/ci_checks.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 0857ac6..4d9d020 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -17,8 +17,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - with: - driver: docker - name: Bake the bootstrap docker image uses: docker/bake-action@v5 @@ -50,7 +48,7 @@ jobs: with: source: . files: .github/docker-compose.yml - targets: fenix + targets: env,fenix workdir: . set: | *.output=type=docker,name=local/fenix From 6c7b1b6af25b0590b87c0974a60fad4a181463d3 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Thu, 10 Oct 2024 13:48:19 -0400 Subject: [PATCH 21/38] Have bootstrap container use same base image as env container --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 8214a80..04f6485 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -3,7 +3,7 @@ services: image: "local/bootstrap" build: dockerfile_inline: | - FROM spack/ubuntu-focal:0.21.3 + FROM spack/ubuntu-jammy:latest VOLUME /configs ARG ompi_version ENV ompi_version=$$ompi_version From 33eb60726c29c8e33bc631e7e846789fb3791f96 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 12:03:09 -0500 Subject: [PATCH 22/38] Use Github's Container Registry (GHCR) to save environment image --- .github/docker-compose.yml | 15 ++++++--------- .github/workflows/ci_checks.yaml | 32 +++++++++++++++++++++++--------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 04f6485..6de5b81 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -19,22 +19,17 @@ services: - .github/:/configs env: - image: "local/env" + image: "ghcr.io/sandialabs/fenix/env" build: - # Generated by spack in a previous workflow step + # Generated by running the bootstrap image dockerfile: .github/spack.Dockerfile - depends_on: - bootstrap: - condition: service_completed_successfully - required: true - pull_policy: build - fenix: image: "local/fenix" build: dockerfile_inline: | - FROM local/env + ARG OMPI_VERSION + FROM ghcr.io/sandialabs/fenix/env:$${OMPI_VERSION} COPY . /fenix RUN . /opt/spack-environment/activate.sh && \ mkdir -p /fenix/build && \ @@ -51,4 +46,6 @@ services: WORKDIR /fenix/build ENTRYPOINT ["/entrypoint.sh"] CMD ["ctest", "--output-on-failure"] + args: + OMPI_VERSION: main pull_policy: build diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 4d9d020..0f9cdb7 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -11,6 +11,11 @@ on: jobs: test: runs-on: ubuntu-latest + strategy: + matrix: + ompi_version: + - main + steps: - name: Checkout repository uses: actions/checkout@v3 @@ -18,6 +23,13 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 + - name: Log in to GHCR container registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Bake the bootstrap docker image uses: docker/bake-action@v5 with: @@ -25,9 +37,10 @@ jobs: targets: bootstrap workdir: . set: | - *.output=type=docker,name=local/bootstrap - *.cache-from=type=gha,scope=local/bootstrap + *.output=type=docker,name=local/bootstrap/${{ matrix.ompi_version }} + *.cache-from=type=gha,scope=local/bootstrap/${{ matrix.ompi_version }} *.cache-to=type=gha,mode=max,scope=local/bootstrap + *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Bootstrap the environment Dockerfile run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs local/bootstrap @@ -36,23 +49,24 @@ jobs: uses: docker/bake-action@v5 with: files: .github/docker-compose.yml - targets: env + targets: ghcr.io/sandialabs/fenix/env workdir: . + pull: true + push: true set: | - *.output=type=docker,name=local/env - *.cache-from=type=gha,scope=local/env - *.cache-to=type=gha,mode=max,scope=local/env + *.cache-from=type=gha,scope=local/env/${{ matrix.ompi_version }} + *.cache-to=type=gha,mode=max,scope=local/env/${{ matrix.ompi_version }} + *.tags=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} - name: Build Fenix uses: docker/bake-action@v5 with: source: . files: .github/docker-compose.yml - targets: env,fenix + targets: fenix workdir: . set: | - *.output=type=docker,name=local/fenix - *.cache-from=type=gha,scope=local/env + *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Test Fenix run: docker run local/fenix From 88f3b58ee39e126c10e6adabfeb91d86a1f7eb09 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 12:11:22 -0500 Subject: [PATCH 23/38] remove domain from image name --- .github/docker-compose.yml | 2 +- .github/workflows/ci_checks.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 6de5b81..8c0a0c7 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -19,7 +19,7 @@ services: - .github/:/configs env: - image: "ghcr.io/sandialabs/fenix/env" + image: "sandialabs/fenix/env" build: # Generated by running the bootstrap image dockerfile: .github/spack.Dockerfile diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 0f9cdb7..6537363 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -49,14 +49,14 @@ jobs: uses: docker/bake-action@v5 with: files: .github/docker-compose.yml - targets: ghcr.io/sandialabs/fenix/env + targets: sandialabs/fenix/env workdir: . pull: true push: true set: | *.cache-from=type=gha,scope=local/env/${{ matrix.ompi_version }} *.cache-to=type=gha,mode=max,scope=local/env/${{ matrix.ompi_version }} - *.tags=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} + *.output=type=docker,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} - name: Build Fenix uses: docker/bake-action@v5 From 96d5f6e83b2535b2c99c4794058e77a743828b45 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 12:19:19 -0500 Subject: [PATCH 24/38] Use single-component names --- .github/docker-compose.yml | 6 +++--- .github/workflows/ci_checks.yaml | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 8c0a0c7..cc38637 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -1,6 +1,6 @@ services: bootstrap: - image: "local/bootstrap" + image: "bootstrap" build: dockerfile_inline: | FROM spack/ubuntu-jammy:latest @@ -19,13 +19,13 @@ services: - .github/:/configs env: - image: "sandialabs/fenix/env" + image: "env" build: # Generated by running the bootstrap image dockerfile: .github/spack.Dockerfile fenix: - image: "local/fenix" + image: "fenix" build: dockerfile_inline: | ARG OMPI_VERSION diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 6537363..20ed663 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -37,26 +37,26 @@ jobs: targets: bootstrap workdir: . set: | - *.output=type=docker,name=local/bootstrap/${{ matrix.ompi_version }} + *.output=type=docker,name=bootstrap *.cache-from=type=gha,scope=local/bootstrap/${{ matrix.ompi_version }} - *.cache-to=type=gha,mode=max,scope=local/bootstrap + *.cache-to=type=gha,mode=max,scope=local/bootstrap/${{ matrix.ompi_version }} *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Bootstrap the environment Dockerfile - run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs local/bootstrap + run: docker run -v ${GITHUB_WORKSPACE}/.github:/configs bootstrap - name: Build the environment uses: docker/bake-action@v5 with: files: .github/docker-compose.yml - targets: sandialabs/fenix/env + targets: env workdir: . pull: true push: true set: | - *.cache-from=type=gha,scope=local/env/${{ matrix.ompi_version }} - *.cache-to=type=gha,mode=max,scope=local/env/${{ matrix.ompi_version }} - *.output=type=docker,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} + *.cache-from=type=gha,scope=env/${{ matrix.ompi_version }} + *.cache-to=type=gha,mode=max,scope=env/${{ matrix.ompi_version }} + *.output=type=image,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} - name: Build Fenix uses: docker/bake-action@v5 From 7ea7f8fcd98e0bfe042933078f0659ec479574f1 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 12:43:04 -0500 Subject: [PATCH 25/38] Fix setting output twice --- .github/workflows/ci_checks.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 20ed663..57d6729 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -52,11 +52,10 @@ jobs: targets: env workdir: . pull: true - push: true set: | *.cache-from=type=gha,scope=env/${{ matrix.ompi_version }} *.cache-to=type=gha,mode=max,scope=env/${{ matrix.ompi_version }} - *.output=type=image,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} + *.output=type=registry,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} - name: Build Fenix uses: docker/bake-action@v5 From eb46ba38a5b6f1027eeaf19752a84106c900c695 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:05:28 -0500 Subject: [PATCH 26/38] Use full url for image name --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index cc38637..b981426 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -19,7 +19,7 @@ services: - .github/:/configs env: - image: "env" + image: "ghcr.io/sandialabs/fenix/env" build: # Generated by running the bootstrap image dockerfile: .github/spack.Dockerfile From 29624b28b8bb4d9e5ae5364e1506345949de955b Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:30:33 -0500 Subject: [PATCH 27/38] Set tag --- .github/workflows/ci_checks.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 57d6729..203fd59 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -55,7 +55,8 @@ jobs: set: | *.cache-from=type=gha,scope=env/${{ matrix.ompi_version }} *.cache-to=type=gha,mode=max,scope=env/${{ matrix.ompi_version }} - *.output=type=registry,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} + env.tags=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} + env.output=type=registry,name=ghcr.io/sandialabs/fenix/env:${{ matrix.ompi_version }} - name: Build Fenix uses: docker/bake-action@v5 From de9bf630c8c01c947c5595dda3111b9d9e9167ef Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:38:02 -0500 Subject: [PATCH 28/38] Remove pointless command --- .github/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index b981426..27b0120 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -33,7 +33,6 @@ services: COPY . /fenix RUN . /opt/spack-environment/activate.sh && \ mkdir -p /fenix/build && \ - rm -r /fenix/build/* && \ cd /fenix/build && \ cmake /fenix \ -DCMAKE_BUILD_TYPE=Release \ From dbcdf26df0f1bd7d97e02280718dbdfe1043c891 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:46:42 -0500 Subject: [PATCH 29/38] Remove one last 'local/' --- .github/workflows/ci_checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 203fd59..aa350ee 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -69,4 +69,4 @@ jobs: *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Test Fenix - run: docker run local/fenix + run: docker run fenix From 80c08e0c3f3865e5371342ec2aeda9f0c3cf99b0 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:50:20 -0500 Subject: [PATCH 30/38] Set docker output for fenix image --- .github/workflows/ci_checks.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index aa350ee..143e123 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -38,8 +38,8 @@ jobs: workdir: . set: | *.output=type=docker,name=bootstrap - *.cache-from=type=gha,scope=local/bootstrap/${{ matrix.ompi_version }} - *.cache-to=type=gha,mode=max,scope=local/bootstrap/${{ matrix.ompi_version }} + *.cache-from=type=gha,scope=bootstrap/${{ matrix.ompi_version }} + *.cache-to=type=gha,mode=max,scope=bootstrap/${{ matrix.ompi_version }} *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Bootstrap the environment Dockerfile @@ -66,6 +66,7 @@ jobs: targets: fenix workdir: . set: | + *.output=type=docker,name=fenix *.args.OMPI_VERSION=${{ matrix.ompi_version }} - name: Test Fenix From b7832e45787bd7e5bd69d19daa0a3b9d2aa66877 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 13:53:36 -0500 Subject: [PATCH 31/38] Add version 5.0.5 test --- .github/workflows/ci_checks.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 143e123..250e8b5 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -15,6 +15,7 @@ jobs: matrix: ompi_version: - main + - 5.0.5 steps: - name: Checkout repository From e93ecffe4229f06f39d9177de804f1a7e4e82b7d Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 14:00:27 -0500 Subject: [PATCH 32/38] Add timeout to tests --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 27b0120..6c4e9b3 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -44,7 +44,7 @@ services: WORKDIR /fenix/build ENTRYPOINT ["/entrypoint.sh"] - CMD ["ctest", "--output-on-failure"] + CMD ["ctest", "--output-on-failure", "--timeout", "60"] args: OMPI_VERSION: main pull_policy: build From a1a3793daffea2f7a5a88a37a4aa10b5100417fd Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 14:04:06 -0500 Subject: [PATCH 33/38] Fix arg name format --- .github/docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 6c4e9b3..5fbeed2 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -5,14 +5,14 @@ services: dockerfile_inline: | FROM spack/ubuntu-jammy:latest VOLUME /configs - ARG ompi_version - ENV ompi_version=$$ompi_version + ARG OMPI_VERSION + ENV OMPI_VERSION=$${OMPI_VERSION} CMD cp /configs/spack.yaml . && \ - spack -e . add openmpi@$${ompi_version} && \ + spack -e . add openmpi@$${OMPI_VERSION} && \ spack -e . containerize >/configs/spack.Dockerfile && \ sed -i -e 's/spack install/spack external find --all --not-buildable \&\& spack install/;' /configs/spack.Dockerfile args: - ompi_version: main + OMPI_VERSION: main no_cache: true pull_policy: build volumes: From 95bca5d1a50599290d7a81395dd87ce6110b8420 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 14:36:34 -0500 Subject: [PATCH 34/38] Set specific spack version, swap to ompi versions supported --- .github/docker-compose.yml | 4 ++-- .github/spack.yaml | 2 +- .github/workflows/ci_checks.yaml | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 5fbeed2..48c9132 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -3,14 +3,14 @@ services: image: "bootstrap" build: dockerfile_inline: | - FROM spack/ubuntu-jammy:latest + FROM spack/ubuntu-jammy:0.22.2 VOLUME /configs ARG OMPI_VERSION ENV OMPI_VERSION=$${OMPI_VERSION} CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${OMPI_VERSION} && \ spack -e . containerize >/configs/spack.Dockerfile && \ - sed -i -e 's/spack install/spack external find --all --not-buildable \&\& spack install/;' /configs/spack.Dockerfile + sed -i -e 's/spack install/spack info openmpi \&\& spack -d install/;' /configs/spack.Dockerfile args: OMPI_VERSION: main no_cache: true diff --git a/.github/spack.yaml b/.github/spack.yaml index 2c638dd..aa509da 100644 --- a/.github/spack.yaml +++ b/.github/spack.yaml @@ -11,7 +11,7 @@ spack: strip: false images: os: ubuntu:22.04 - spack: latest + spack: 0.22.2 os_packages: build: - build-essential diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index 250e8b5..e5ed633 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -15,7 +15,8 @@ jobs: matrix: ompi_version: - main - - 5.0.5 + - 5.0.3 + - git.v5.0.x steps: - name: Checkout repository From aa7b7e8348bfd41fd3d1fa0b141b8b8b7a98704b Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 14:53:29 -0500 Subject: [PATCH 35/38] Add spack externals command back --- .github/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 48c9132..0eef989 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -10,7 +10,7 @@ services: CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${OMPI_VERSION} && \ spack -e . containerize >/configs/spack.Dockerfile && \ - sed -i -e 's/spack install/spack info openmpi \&\& spack -d install/;' /configs/spack.Dockerfile + sed -i -e 's/spack install/spack external find --all \&\& spack -d install/;' /configs/spack.Dockerfile args: OMPI_VERSION: main no_cache: true From 3429280bf979ea67da0a9752f78cf5d1f9302819 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 14:59:16 -0500 Subject: [PATCH 36/38] Remove unsupported version of MPI for this version of Spack --- .github/workflows/ci_checks.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index e5ed633..d664eaf 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -16,7 +16,6 @@ jobs: ompi_version: - main - 5.0.3 - - git.v5.0.x steps: - name: Checkout repository From 45ddc7c907d1a541c5910f65f8f43e78ed3e73cb Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 15:01:20 -0500 Subject: [PATCH 37/38] Continue running other matrix jobs when one fails --- .github/workflows/ci_checks.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci_checks.yaml b/.github/workflows/ci_checks.yaml index d664eaf..14c376c 100644 --- a/.github/workflows/ci_checks.yaml +++ b/.github/workflows/ci_checks.yaml @@ -12,6 +12,7 @@ jobs: test: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: ompi_version: - main From f04ee7d35fe6e2bef441973878d121b7c343df83 Mon Sep 17 00:00:00 2001 From: Matthew Whitlock Date: Wed, 13 Nov 2024 17:35:45 -0500 Subject: [PATCH 38/38] Build dependencies instead of apt-installing --- .github/docker-compose.yml | 7 +++---- .github/spack.yaml | 5 ----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 0eef989..c8c9024 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -9,8 +9,7 @@ services: ENV OMPI_VERSION=$${OMPI_VERSION} CMD cp /configs/spack.yaml . && \ spack -e . add openmpi@$${OMPI_VERSION} && \ - spack -e . containerize >/configs/spack.Dockerfile && \ - sed -i -e 's/spack install/spack external find --all \&\& spack -d install/;' /configs/spack.Dockerfile + spack -e . containerize >/configs/spack.Dockerfile args: OMPI_VERSION: main no_cache: true @@ -19,7 +18,7 @@ services: - .github/:/configs env: - image: "ghcr.io/sandialabs/fenix/env" + image: "ghcr.io/sandialabs/fenix/env:main" build: # Generated by running the bootstrap image dockerfile: .github/spack.Dockerfile @@ -28,7 +27,7 @@ services: image: "fenix" build: dockerfile_inline: | - ARG OMPI_VERSION + ARG OMPI_VERSION main FROM ghcr.io/sandialabs/fenix/env:$${OMPI_VERSION} COPY . /fenix RUN . /opt/spack-environment/activate.sh && \ diff --git a/.github/spack.yaml b/.github/spack.yaml index aa509da..c5d3611 100644 --- a/.github/spack.yaml +++ b/.github/spack.yaml @@ -16,20 +16,15 @@ spack: build: - build-essential - autotools-dev - - libevent-dev - pkg-config - python3 - m4 - autoconf - automake - - libtool - flex - git - zlib1g-dev - - openssh-server - - openssl - libperl-dev - - pkg-config - numactl final: - build-essential