Add remaining <compiler>-<backend>-env recipes currently used - #40
Conversation
There was a problem hiding this comment.
Pull request overview
This PR completes the set of ghci-snl final environment image recipes (compiler/backend env combinations) used by E3SM’s ghci-snl GitHub Actions testing, and updates the CI workflow to build/publish them.
Changes:
- Add new final env Docker recipes for
intel-cpu-envandgnu-cuda-env(including an NVIDIA repo file for CUDA drivers). - Update the
ghci-snlGitHub Actions workflow to build final env images from the corresponding compiler images and tag/publish them. - Normalize the
BASE_TAGdefault in the existinggnu-cpu-envrecipe.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
ghci-snl/final/intel-cpu-env/Dockerfile |
New Intel CPU final environment image (Spack libs + PyTorch). |
ghci-snl/final/gnu-cuda-env/Dockerfile |
New GNU CUDA final environment image (NVIDIA drivers + CUDA + MPI + Python pkgs). |
ghci-snl/final/gnu-cuda-env/cuda-rhel9.repo |
Adds NVIDIA CUDA repo configuration for RHEL9. |
ghci-snl/final/gnu-cpu-env/Dockerfile |
Adjusts the default BASE_TAG build arg value. |
.github/workflows/ghci-snl.yaml |
Extends CI to build/publish the new final env images and updates tag logic. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
954195f to
4754b0d
Compare
2273217 to
076f6b6
Compare
076f6b6 to
2f4375e
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Suppressed comments (3)
ghci-snl/final/gnu-cpu-env/Dockerfile:70
- The leading
.sources a file namedgit; it does not execute the Git command. With/usr/bin/gitonPATH, Bash attempts to parse that binary as a shell script, so this image build fails before the CIME submodule is initialized. The profile was already sourced on line 68, so invokegitdirectly here.
.github/workflows/ghci-snl.yaml:191 - This metadata is also applied to
gnu-cuda-env, so its published OCI description incorrectly identifies the GPU/CUDA image as CPU-only. Use a generic description or derive the target from the matrix.
org.opencontainers.image.description=${{ matrix.tag }} image for E3SM ghci-snl testing on CPU on GitHub actions
.github/workflows/ghci-snl.yaml:202
- On a
ghci-snl-*tag push, the compiler job publishes a suffixed image (for examplegnu-13.3.0-v1), but this expression always pulls the unsuffixedgnu-13.3.0because it only distinguishes pull requests. Consequently, tagged final images are built from the previously published compiler image rather than the compiler image produced by the same tagged run. Tag handling must be propagated consistently through the base, compiler, and final build arguments.
BASE_TAG=${{ matrix.compiler }}-${{ matrix.version }}${{ github.event_name == 'pull_request' && format('-pr-{0}', github.event.pull_request.number) || '' }}
|
@copilot could you please review the logs in this PR and comment here on why they're failing and what could be the fix? Review the PR in light of the logs and code, not just code edits. |
Looked at the latest failing run (33224443413, commit 2f4375e). Two
( |
Co-authored-by: Naser Mahfouz <naser.mahfouz@pnnl.gov>
|
@copilot, review the cuda-env error in the logs again please and suggest a solution. |
Co-authored-by: mahf708 <122953255+mahf708@users.noreply.github.com>
Looked at the latest run (33267785759, commit b4f2cfb). The log shows why the previous fix didn't help:
Fixed in a new commit by using This keeps the fix scoped to the |
Co-authored-by: mahf708 <122953255+mahf708@users.noreply.github.com>
Fixed the missing trailing separator: Re: "also appears on line 202" — that line is the |
|
@bartgol I merged this because I was excited, but note a piece of minor feedback: we could utilize preexiting spack cache instead of rebuidling every little thing. Building cmake alone is a total monster of a job. :) Example of how to do it, but there are others, and this could easily be an issue for claudio Lines 80 to 96 in a54261d |
This completes the recipes for all the images currently used for ghci-snl testing by E3SM.