From f45cee120a0cb262e9fab7be09924ee47ed782d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20David--Cl=C3=A9ris?= Date: Fri, 22 Aug 2025 11:57:46 +0200 Subject: [PATCH 1/3] add LLVM15 images --- .../workflows/build_publish_containers.yml | 53 +++++++++++++++++++ images/ubuntu20llvm15/Dockerfile.in | 5 ++ images/ubuntu20llvm15/install_llvm.sh | 14 +++++ images/ubuntu20llvm15cuda11/Dockerfile.in | 5 ++ images/ubuntu20llvm15cuda11/install_cuda.sh | 7 +++ images/ubuntu20llvm15rocm5.4.3/Dockerfile.in | 5 ++ .../ubuntu20llvm15rocm5.4.3/install_rocm.sh | 8 +++ 7 files changed, 97 insertions(+) create mode 100644 images/ubuntu20llvm15/Dockerfile.in create mode 100644 images/ubuntu20llvm15/install_llvm.sh create mode 100644 images/ubuntu20llvm15cuda11/Dockerfile.in create mode 100644 images/ubuntu20llvm15cuda11/install_cuda.sh create mode 100644 images/ubuntu20llvm15rocm5.4.3/Dockerfile.in create mode 100644 images/ubuntu20llvm15rocm5.4.3/install_rocm.sh diff --git a/.github/workflows/build_publish_containers.yml b/.github/workflows/build_publish_containers.yml index b40aead..7c6afb8 100644 --- a/.github/workflows/build_publish_containers.yml +++ b/.github/workflows/build_publish_containers.yml @@ -64,6 +64,25 @@ jobs: imagepath: ubuntu22 runson: ubuntu-latest + + + build-ubuntu_20_llvm_15: + + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + + needs: [build-ubuntu_20] + uses: ./.github/workflows/build-and-push.yml + with: + imagename: shamrock-ci + imagetag: ubuntu20llvm15 + imagepath: ubuntu20llvm15 + runson: self-hosted + build-ubuntu_20_cuda_12: permissions: @@ -98,6 +117,23 @@ jobs: imagepath: ubuntu20cuda11 runson: self-hosted + build-ubuntu_20_llvm_15_cuda_11: + + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + + needs: [build-ubuntu_20_llvm_15] + uses: ./.github/workflows/build-and-push.yml + with: + imagename: shamrock-ci + imagetag: ubuntu20llvm15cuda11 + imagepath: ubuntu20llvm15cuda11 + runson: self-hosted + build-ubuntu_22_cuda_12: permissions: @@ -148,7 +184,24 @@ jobs: imagetag: ubuntu20rocm543 imagepath: ubuntu20rocm5.4.3 runson: ubuntu-latest + + build-ubuntu_20_llvm_15_rocm543: + + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + needs: [build-ubuntu_20_llvm_15] + uses: ./.github/workflows/build-and-push.yml + with: + imagename: shamrock-ci + imagetag: ubuntu20llvm15rocm543 + imagepath: ubuntu20llvm15rocm5.4.3 + runson: ubuntu-latest + build-ubuntu_22_rocm543: permissions: diff --git a/images/ubuntu20llvm15/Dockerfile.in b/images/ubuntu20llvm15/Dockerfile.in new file mode 100644 index 0000000..bceba86 --- /dev/null +++ b/images/ubuntu20llvm15/Dockerfile.in @@ -0,0 +1,5 @@ +ARG BRANCHNAME +FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu20${BRANCHNAME} + +COPY install_llvm.sh install_llvm.sh +RUN sh install_llvm.sh && rm install_llvm.sh \ No newline at end of file diff --git a/images/ubuntu20llvm15/install_llvm.sh b/images/ubuntu20llvm15/install_llvm.sh new file mode 100644 index 0000000..e07016e --- /dev/null +++ b/images/ubuntu20llvm15/install_llvm.sh @@ -0,0 +1,14 @@ +set -eu + +LLVM_VERSION=15 + +wget https://apt.llvm.org/llvm.sh +chmod +x llvm.sh +sudo ./llvm.sh $LLVM_VERSION +sudo apt install -y libclang-${LLVM_VERSION}-dev clang-tools-${LLVM_VERSION} libomp-${LLVM_VERSION}-dev + +# special case for LLVM 16 +if [[ "${LLVM_VERSION}" == "16" ]]; then + sudo rm -r /usr/lib/clang/16* + sudo ln -s /usr/lib/llvm-16/lib/clang/16 /usr/lib/clang/16 +fi \ No newline at end of file diff --git a/images/ubuntu20llvm15cuda11/Dockerfile.in b/images/ubuntu20llvm15cuda11/Dockerfile.in new file mode 100644 index 0000000..921afc5 --- /dev/null +++ b/images/ubuntu20llvm15cuda11/Dockerfile.in @@ -0,0 +1,5 @@ +ARG BRANCHNAME +FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu20llvm15${BRANCHNAME} + +COPY install_cuda.sh install_cuda.sh +RUN sh install_cuda.sh && rm install_cuda.sh \ No newline at end of file diff --git a/images/ubuntu20llvm15cuda11/install_cuda.sh b/images/ubuntu20llvm15cuda11/install_cuda.sh new file mode 100644 index 0000000..027dbfc --- /dev/null +++ b/images/ubuntu20llvm15cuda11/install_cuda.sh @@ -0,0 +1,7 @@ +set -eu + +mkdir -p /opt/cuda +wget --progress=bar:force -O cuda.sh http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run +sudo sh ./cuda.sh --override --silent --toolkit --no-man-page --no-drm --no-opengl-libs --installpath=/opt/cuda || true +echo "CUDA Version 11.0.2" | sudo tee /opt/cuda/version.txt +rm cuda.sh \ No newline at end of file diff --git a/images/ubuntu20llvm15rocm5.4.3/Dockerfile.in b/images/ubuntu20llvm15rocm5.4.3/Dockerfile.in new file mode 100644 index 0000000..65ff397 --- /dev/null +++ b/images/ubuntu20llvm15rocm5.4.3/Dockerfile.in @@ -0,0 +1,5 @@ +ARG BRANCHNAME +FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu20llvm15${BRANCHNAME} + +COPY install_rocm.sh /opt/src/scripts/install_rocm.sh +RUN sh /opt/src/scripts/install_rocm.sh \ No newline at end of file diff --git a/images/ubuntu20llvm15rocm5.4.3/install_rocm.sh b/images/ubuntu20llvm15rocm5.4.3/install_rocm.sh new file mode 100644 index 0000000..46c8b47 --- /dev/null +++ b/images/ubuntu20llvm15rocm5.4.3/install_rocm.sh @@ -0,0 +1,8 @@ +set -eu + +sudo apt install -y libnuma-dev cmake unzip +wget --progress=bar:force -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - +echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/5.4.3 focal main" | sudo tee /etc/apt/sources.list.d/rocm.list +printf 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600 +sudo apt update -y +sudo apt install -y rocm-dev \ No newline at end of file From 311d87b974ca3ea60d12e3161274d040234d2f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20David--Cl=C3=A9ris?= Date: Fri, 22 Aug 2025 12:02:10 +0200 Subject: [PATCH 2/3] add llvm 18 --- .github/workflows/build_publish_containers.yml | 16 ++++++++++++++++ images/ubuntu_latest_llvm18/Dockerfile.in | 5 +++++ images/ubuntu_latest_llvm18/install_llvm.sh | 14 ++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 images/ubuntu_latest_llvm18/Dockerfile.in create mode 100644 images/ubuntu_latest_llvm18/install_llvm.sh diff --git a/.github/workflows/build_publish_containers.yml b/.github/workflows/build_publish_containers.yml index 7c6afb8..e37882a 100644 --- a/.github/workflows/build_publish_containers.yml +++ b/.github/workflows/build_publish_containers.yml @@ -32,6 +32,22 @@ jobs: imagepath: ubuntu_latest runson: ubuntu-latest + build-ubuntu_latest_llvm_18: + + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + + uses: ./.github/workflows/build-and-push.yml + with: + imagename: shamrock-ci + imagetag: ubuntu-latest-llvm18 + imagepath: ubuntu_latest_llvm18 + runson: ubuntu-latest + build-ubuntu_20: permissions: diff --git a/images/ubuntu_latest_llvm18/Dockerfile.in b/images/ubuntu_latest_llvm18/Dockerfile.in new file mode 100644 index 0000000..ce20fbc --- /dev/null +++ b/images/ubuntu_latest_llvm18/Dockerfile.in @@ -0,0 +1,5 @@ +ARG BRANCHNAME +FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu-latest${BRANCHNAME} + +COPY install_llvm.sh install_llvm.sh +RUN sh install_llvm.sh && rm install_llvm.sh \ No newline at end of file diff --git a/images/ubuntu_latest_llvm18/install_llvm.sh b/images/ubuntu_latest_llvm18/install_llvm.sh new file mode 100644 index 0000000..bb9bd44 --- /dev/null +++ b/images/ubuntu_latest_llvm18/install_llvm.sh @@ -0,0 +1,14 @@ +set -eu + +LLVM_VERSION=18 + +wget https://apt.llvm.org/llvm.sh +chmod +x llvm.sh +sudo ./llvm.sh $LLVM_VERSION +sudo apt install -y libclang-${LLVM_VERSION}-dev clang-tools-${LLVM_VERSION} libomp-${LLVM_VERSION}-dev + +# special case for LLVM 16 +if [[ "${LLVM_VERSION}" == "16" ]]; then + sudo rm -r /usr/lib/clang/16* + sudo ln -s /usr/lib/llvm-16/lib/clang/16 /usr/lib/clang/16 +fi \ No newline at end of file From 1c5d7e6f69e1a7bcde62710a11a3914b3f80f79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20David--Cl=C3=A9ris?= Date: Fri, 22 Aug 2025 12:02:43 +0200 Subject: [PATCH 3/3] fix --- .github/workflows/build_publish_containers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_publish_containers.yml b/.github/workflows/build_publish_containers.yml index e37882a..2687d0e 100644 --- a/.github/workflows/build_publish_containers.yml +++ b/.github/workflows/build_publish_containers.yml @@ -41,6 +41,7 @@ jobs: # with sigstore/fulcio when running outside of PRs. id-token: write + needs: [build-ubuntu_latest] uses: ./.github/workflows/build-and-push.yml with: imagename: shamrock-ci