Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 66 additions & 1 deletion .github/workflows/build_publish_containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,57 @@ jobs:
imagetag: ubuntu22
imagepath: ubuntu22
runson: ubuntu-latest

build-ubuntu_24:

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: ubuntu24
imagepath: ubuntu24
runson: ubuntu-latest

build-ubuntu_24_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_24]
uses: ./.github/workflows/build-and-push.yml
with:
imagename: shamrock-ci
imagetag: ubuntu24-llvm18
imagepath: ubuntu24_llvm18
runson: ubuntu-latest

build-ubuntu_24_llvm_20:

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_24]
uses: ./.github/workflows/build-and-push.yml
with:
imagename: shamrock-ci
imagetag: ubuntu24-llvm20
imagepath: ubuntu24_llvm20
runson: ubuntu-latest

build-ubuntu_20_llvm_15:

permissions:
Expand All @@ -100,6 +148,23 @@ jobs:
imagepath: ubuntu20llvm15
runson: self-hosted

build-ubuntu_20_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_20]
uses: ./.github/workflows/build-and-push.yml
with:
imagename: shamrock-ci
imagetag: ubuntu20llvm18
imagepath: ubuntu20llvm18
runson: self-hosted

build-ubuntu_20_cuda_12:

permissions:
Expand Down
5 changes: 5 additions & 0 deletions images/ubuntu20llvm18/Dockerfile.in
Original file line number Diff line number Diff line change
@@ -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
14 changes: 14 additions & 0 deletions images/ubuntu20llvm18/install_llvm.sh
Original file line number Diff line number Diff line change
@@ -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
55 changes: 55 additions & 0 deletions images/ubuntu24/Dockerfile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# syntax=docker/dockerfile:1
FROM ubuntu:latest
ARG DEBIAN_FRONTEND=noninteractive

RUN useradd -m docker

RUN apt update -y && apt upgrade -y && apt install -y \
sudo \
curl\
wget\
lsb-release\
software-properties-common\
gnupg\
build-essential \
git \
python3 \
python3-venv \
python3-dev \
python3-pip \
cmake \
ninja-build \
libboost-all-dev \
doxygen \
graphviz \
texlive-full \
latexmk

RUN echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers

# USER docker

# Fix for the issue
# Error: fatal: detected dubious ownership in repository at '/__w/Shamrock/Shamrock/external/NVTX'
# To add an exception for this directory, call:
# git config --global --add safe.directory /__w/Shamrock/Shamrock/external/NVTX
# Unable to find current revision in submodule path 'external/NVTX'
# Error: The process '/usr/bin/git' failed with exit code 1
#
# see : https://github.com/wmde/git-filter-repo-docker-action/pull/2/files
# T314987: Git require the .git folder to be owned by the same user
#
# So we disable the check as detailled here
#https://stackoverflow.com/questions/71849415/i-cannot-add-the-parent-directory-to-safe-directory-in-git
#
RUN git config --global --add safe.directory '*'

# Sometime some apt repo fail on first attempt
# https://stackoverflow.com/questions/72644496/docker-container-connection-timeout-while-installing-packages
RUN echo '\
Acquire::Retries "20";\
Acquire::https::Timeout "60";\
Acquire::http::Timeout "60";\
' > /etc/apt/apt.conf.d/99custom

WORKDIR /home/docker
5 changes: 5 additions & 0 deletions images/ubuntu24_llvm18/Dockerfile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ARG BRANCHNAME
FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu24${BRANCHNAME}

COPY install_llvm.sh install_llvm.sh
RUN sh install_llvm.sh && rm install_llvm.sh
14 changes: 14 additions & 0 deletions images/ubuntu24_llvm18/install_llvm.sh
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions images/ubuntu24_llvm20/Dockerfile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ARG BRANCHNAME
FROM ghcr.io/shamrock-code/shamrock-ci:ubuntu24${BRANCHNAME}

COPY install_llvm.sh install_llvm.sh
RUN sh install_llvm.sh && rm install_llvm.sh
14 changes: 14 additions & 0 deletions images/ubuntu24_llvm20/install_llvm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
set -eu

LLVM_VERSION=20

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