Skip to content

Move to Ubuntu 24.04 LTS #170

Move to Ubuntu 24.04 LTS

Move to Ubuntu 24.04 LTS #170

Workflow file for this run

name: Build
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
env:
DOCKER_BUILDKIT: 1
CR_REPOSITORY: ghcr.io/gridtools/gridtools-base
jobs:
base:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:base
--build-arg REPOSITORY=$CR_REPOSITORY
base
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:base &&
docker logout ghcr.io
gcc:
runs-on: ubuntu-latest
needs: base
strategy:
matrix:
version: [9, 10, 11, 12, 13]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:gcc-${{ matrix.version }}
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:gcc-${{ matrix.version }}
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg GCC_VERSION=${{ matrix.version }}
gcc
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:gcc-${{ matrix.version }} &&
docker logout ghcr.io
clang:
runs-on: ubuntu-latest
needs: base
strategy:
matrix:
version: [13, 14, 15, 16, 17, 18]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:clang-${{ matrix.version }}
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:clang-${{ matrix.version }}
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg CLANG_VERSION=${{ matrix.version }}
clang
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:clang-${{ matrix.version }} &&
docker logout ghcr.io
nvhpc:
runs-on: ubuntu-latest
needs: base
strategy:
matrix:
version: [23.3, 23.9, 23.11, 24.1, 24.3, 24.5]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:nvhpc-${{ matrix.version }}
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:nvhpc-${{ matrix.version }}
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg NVHPC_VERSION=${{ matrix.version }}
nvhpc
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:nvhpc-${{ matrix.version }} &&
docker logout ghcr.io
cuda:
runs-on: ubuntu-latest
needs: [gcc, clang, parmetis]
strategy:
matrix:
base: [gcc-10, gcc-12, gcc-13, clang-10, clang-17, gcc-9-ucx-mpi-atlas-parmetis]
version: [11.8, 12.2, 12.3, 12.4, 12.5]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-cuda-${{ matrix.version }}
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-cuda-${{ matrix.version }}
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
--build-arg CUDA_VERSION=${{ matrix.version }}
cuda
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-cuda-${{ matrix.version }} &&
docker logout ghcr.io
hip:
runs-on: ubuntu-latest
needs: [base, parmetis]
strategy:
matrix:
base: [base, gcc-9-ucx-mpi-atlas-parmetis]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-hip
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-hip
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
hip
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-hip &&
docker logout ghcr.io
hpx:
runs-on: ubuntu-latest
needs: gcc
strategy:
matrix:
base: [gcc-10]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-hpx
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-hpx
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
--build-arg HPX_TAG=1.5.1
hpx
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-hpx &&
docker logout ghcr.io
ucx:
runs-on: ubuntu-latest
needs: gcc
strategy:
matrix:
base: [gcc-9]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-ucx
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-ucx
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
--build-arg UCX_VERSION=1.10.1
ucx
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-ucx &&
docker logout ghcr.io
mpi:
runs-on: ubuntu-latest
needs: ucx
strategy:
matrix:
base: [gcc-9-ucx]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:gcc-9
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-mpi
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-mpi
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
--build-arg MPI_VERSION=4.1
--build-arg MPI_VERSION_FULL=4.1.1
mpi
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-mpi &&
docker logout ghcr.io
atlas:
runs-on: ubuntu-latest
needs: [gcc, mpi]
strategy:
matrix:
base: [gcc-9, gcc-9-ucx-mpi]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-atlas
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-atlas
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
atlas
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-atlas &&
docker logout ghcr.io
parmetis:
runs-on: ubuntu-latest
needs: atlas
strategy:
matrix:
base: [gcc-9-ucx-mpi-atlas]
steps:
- uses: actions/checkout@v2
- name: Build
run: >
docker build
--progress=plain
--cache-from $CR_REPOSITORY:base
--cache-from $CR_REPOSITORY:gcc-9
--cache-from $CR_REPOSITORY:gcc-9-ucx
--cache-from $CR_REPOSITORY:gcc-9-ucx-mpi
--cache-from $CR_REPOSITORY:${{ matrix.base }}
--cache-from $CR_REPOSITORY:${{ matrix.base }}-parmetis
--build-arg BUILDKIT_INLINE_CACHE=1
--tag $CR_REPOSITORY:${{ matrix.base }}-parmetis
--build-arg REPOSITORY=$CR_REPOSITORY
--build-arg BASE=${{ matrix.base }}
--build-arg PARMETIS_VERSION=4.0.3
parmetis
- name: Push
if: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && github.repository == 'GridTools/gridtools-docker' }}
run: >
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin &&
docker push $CR_REPOSITORY:${{ matrix.base }}-parmetis &&
docker logout ghcr.io