Skip to content

Docker Image CI

Docker Image CI #404

Workflow file for this run

name: Docker Image CI
on:
schedule: [ { cron: "50 23 * * 0" } ] # run every Sunday 23h50
push: { branches: [ main, 'v*' ] }
pull_request:
defaults:
run:
shell: bash
jobs:
step1a_base:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
if: ${{ github.event_name != 'schedule' }}
run: |
docker pull ghcr.io/pdidev/test_env/base || true
echo "--cache-from ghcr.io/pdidev/test_env/base" > CACHE_INFO
- name: build
run: |
touch CACHE_INFO
CACHE_INFO="$(cat CACHE_INFO)"
echo "Cache: ${CACHE_INFO}"
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker build \
${CACHE_INFO} \
-t ghcr.io/pdidev/test_env/base \
-t ghcr.io/pdidev/test_env/base:${GITHUB_SHA:0:7} \
spack/1a-base
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/base
docker push ghcr.io/pdidev/test_env/base:${GITHUB_SHA:0:7}
step1b_spackbase:
needs: step1a_base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/spackbase || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/spackbase \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/spackbase \
-t ghcr.io/pdidev/test_env/spackbase:${GITHUB_SHA:0:7} \
spack/1b-spackbase
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/spackbase
docker push ghcr.io/pdidev/test_env/spackbase:${GITHUB_SHA:0:7}
step2a_precomp:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step1b_spackbase
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a-${GITHUB_SHA:0:7} \
spack/2a-precomp
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2a-${GITHUB_SHA:0:7}
step2b_compiler:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step2a_precomp
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b-${GITHUB_SHA:0:7} \
spack/2b-compiler
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2b-${GITHUB_SHA:0:7}
step2c_squash:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step2b_compiler
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c-${GITHUB_SHA:0:7} \
spack/2c-squash
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-2c-${GITHUB_SHA:0:7}
step3a_precomp:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step2c_squash
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a-${GITHUB_SHA:0:7} \
spack/3a-precomp
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3a-${GITHUB_SHA:0:7}
step3b_compiler:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step3a_precomp
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b-${GITHUB_SHA:0:7} \
spack/3b-compiler
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3b-${GITHUB_SHA:0:7}
step3c_squash:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step3b_compiler
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c-${GITHUB_SHA:0:7} \
spack/3c-squash
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-3c-${GITHUB_SHA:0:7}
step4_baselibs:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
needs: step3c_squash
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a-${GITHUB_SHA:0:7} \
spack/4a-baselibs
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4a-${GITHUB_SHA:0:7}
docker image prune -f
- name: get cache
run: |
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b-${GITHUB_SHA:0:7} \
spack/4b-squash
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-4b-${GITHUB_SHA:0:7}
step5_mpi:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
mpi: ['openmpi']
needs: step4_baselibs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg MPI=${{ matrix.mpi }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a-${GITHUB_SHA:0:7} \
spack/5a-mpi
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-5a-${GITHUB_SHA:0:7}
docker image prune -f
- name: get cache
run: |
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg MPI=${{ matrix.mpi }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini-${GITHUB_SHA:0:7} \
spack/5b-squash
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini-${GITHUB_SHA:0:7}
step6_optlibs:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
mpi: ['openmpi']
needs: step5_mpi
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all || true
- name: build
run: |
docker build \
--cache-from ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg MPI=${{ matrix.mpi }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all \
-t ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all-${GITHUB_SHA:0:7} \
spack/6-optlibs
- name: publish
run: |
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all
docker push ghcr.io/pdidev/test_env/builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all-${GITHUB_SHA:0:7}
step7_finalize:
strategy:
fail-fast: false
matrix:
version: ['latest', 'oldest']
compiler: ['gcc', 'clang']
mpi: ['openmpi']
level: ['mini', 'all']
needs: step6_optlibs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: build
run: |
docker build \
--build-arg VERSION=${{ matrix.version }} \
--build-arg COMPILER=${{ matrix.compiler }} \
--build-arg MPI=${{ matrix.mpi }} \
--build-arg LIBS=${{ matrix.level }} \
--build-arg IMAGE_TAG=${GITHUB_SHA:0:7} \
-t ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }} \
-t ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${GITHUB_SHA:0:7} \
spack/7-finalize
- name: publish
run: |
docker push ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}
docker push ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${GITHUB_SHA:0:7}
- name: Publish tagged
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
run: |
DOCKER_TAG="${{github.ref_name}}"
docker tag ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }} ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${DOCKER_TAG}
docker push ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${DOCKER_TAG}
system_focal:
strategy:
fail-fast: false
matrix:
mpi: ['openmpi', 'mpich']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini || true
- name: build
run: |
docker build \
--build-arg MPI=${{ matrix.mpi }} \
--cache-from ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini:${GITHUB_SHA:0:7} \
system/focal-mini
- name: publish
run: |
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini:${GITHUB_SHA:0:7}
- name: Publish tagged
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
run: |
DOCKER_TAG="${{github.ref_name}}"
docker tag ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini:${DOCKER_TAG}
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/mini:${DOCKER_TAG}
system_focal_libs:
strategy:
fail-fast: false
matrix:
mpi: ['openmpi', 'mpich']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all || true
- name: build
run: |
docker build \
--build-arg MPI=${{ matrix.mpi }} \
--cache-from ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all:${GITHUB_SHA:0:7} \
system/focal-all
- name: publish
run: |
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all:${GITHUB_SHA:0:7}
- name: Publish tagged
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
run: |
DOCKER_TAG="${{github.ref_name}}"
docker tag ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all:${DOCKER_TAG}
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/all:${DOCKER_TAG}
system_focal_pdi:
strategy:
fail-fast: false
matrix:
mpi: ['openmpi', 'mpich']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: get cache
run: |
sudo rm -rf /opt/az /opt/hostedtoolcache /usr/local/graalvm \
/usr/local/lib/android /usr/local/lib/node_modules \
/usr/local/.ghcup /usr/share/dotnet /usr/share/swift
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi || true
- name: build
run: |
docker build \
--build-arg MPI=${{ matrix.mpi }} \
--cache-from ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi \
-t ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi:${GITHUB_SHA:0:7} \
system/focal-pdi
- name: publish
run: |
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi:${GITHUB_SHA:0:7}
- name: Publish tagged
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
run: |
DOCKER_TAG="${{github.ref_name}}"
docker tag ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi:${DOCKER_TAG}
docker push ghcr.io/pdidev/ubuntu/focal/${{ matrix.mpi }}/pdi:${DOCKER_TAG}