diff --git a/.github/workflows/build_publish_containers.yml b/.github/workflows/build_publish_containers.yml index b40aead..2687d0e 100644 --- a/.github/workflows/build_publish_containers.yml +++ b/.github/workflows/build_publish_containers.yml @@ -32,6 +32,23 @@ 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 + + needs: [build-ubuntu_latest] + 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: @@ -64,6 +81,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 +134,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 +201,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 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