Skip to content

Merge pull request #218 from gerlero/files #655

Merge pull request #218 from gerlero/files

Merge pull request #218 from gerlero/files #655

Workflow file for this run

name: Docker
on:
push:
branches:
- main
tags:
- '*'
pull_request:
branches:
- main
workflow_dispatch:
env:
IMAGES: ${{ vars.DOCKERHUB_REPOSITORY || github.repository }}
jobs:
bare:
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGES }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=pep440,pattern={{version}}
type=pep440,pattern={{major}}.{{minor}}
type=pep440,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
- name: Login to GitHub Container Registry
continue-on-error: ${{ github.event_name != 'push' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
if: vars.DOCKERHUB_REPOSITORY
continue-on-error: ${{ github.event_name != 'push' }}
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: |
type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-amd64
type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-arm64
push: ${{ github.event_name == 'push' }}
- name: Push build cache (amd64)
if: github.event_name == 'push'
uses: docker/build-push-action@v6
with:
platforms: linux/amd64
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-amd64
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-amd64,mode=max
- name: Push build cache (arm64)
if: github.event_name == 'push'
uses: docker/build-push-action@v6
with:
platforms: linux/arm64
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-arm64
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-arm64,mode=max
openfoam:
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
matrix:
openfoam-version: [2406, 2312, 12, 11]
fail-fast: false
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGES }}
tags: |
type=ref,event=branch,suffix=-openfoam${{ matrix.openfoam-version }}
type=ref,event=pr,suffix=-openfoam${{ matrix.openfoam-version }}
type=pep440,pattern=openfoam${{ matrix.openfoam-version }}
type=pep440,pattern={{version}}-openfoam${{ matrix.openfoam-version }}
type=pep440,pattern={{major}}.{{minor}}-openfoam${{ matrix.openfoam-version }}
type=pep440,pattern={{major}}-openfoam${{ matrix.openfoam-version }},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
flavor: latest=false
- name: Login to GitHub Container Registry
continue-on-error: ${{ github.event_name != 'push' }}
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
if: vars.DOCKERHUB_REPOSITORY
continue-on-error: ${{ github.event_name != 'push' }}
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: |
type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-amd64
type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-arm64
push: ${{ github.event_name == 'push' }}
build-args: |
BASE=openfoam
OPENFOAM_VERSION=${{ matrix.openfoam-version }}
- name: Push build cache (amd64)
if: github.event_name == 'push'
uses: docker/build-push-action@v6
with:
platforms: linux/amd64
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-amd64
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-amd64,mode=max
build-args: |
BASE=openfoam
OPENFOAM_VERSION=${{ matrix.openfoam-version }}
- name: Push build cache (arm64)
if: github.event_name == 'push'
uses: docker/build-push-action@v6
with:
platforms: linux/arm64
cache-from: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-arm64
cache-to: type=registry,ref=ghcr.io/${{ github.repository }}:buildcache-openfoam${{ matrix.openfoam-version }}-arm64,mode=max
build-args: |
BASE=openfoam
OPENFOAM_VERSION=${{ matrix.openfoam-version }}