Skip to content

Image Creator

Image Creator #55

Workflow file for this run

name: 'Image Creator'
on:
workflow_dispatch:
inputs:
minimal_version:
description: 'Build Minimal Image'
required: true
type: boolean
full_version:
description: 'Build Full Image'
required: true
type: boolean
env:
REGISTRY: 'ghcr.io'
USER_NAME: 'arcaneframework'
IMAGE_OS_NAME: 'ubuntu-2204'
DOCKERFILE_PATH: './dockerfiles'
jobs:
# Quand on demande minimal et full, le minimal doit être fait avant le full.
build-and-push-minimal:
name: Ubuntu 22.04 Minimal Image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache
- name: Checkout repository
if: ${{ inputs.minimal_version }}
uses: actions/checkout@v4
- name: Set up QEMU
if: ${{ inputs.minimal_version }}
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
if: ${{ inputs.minimal_version }}
uses: docker/setup-buildx-action@v3
- name: Log in to the Container registry
if: ${{ inputs.minimal_version }}
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
if: ${{ inputs.minimal_version }}
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.USER_NAME }}/${{ env.IMAGE_OS_NAME }}
labels: |
org.opencontainers.image.title=ArcaneFramework
org.opencontainers.image.description=Minimal image to Build/Install/Run Arcane Framework
org.opencontainers.image.vendor=CEA
org.opencontainers.image.licenses=Apache2
tags: |
type=raw, minimal_latest
type=raw, minimal_{{date 'YYYYMMDD'}}
type=raw, gcc_minimal_latest
type=raw, clang_minimal_latest
type=raw, gcc-12_minimal_{{date 'YYYYMMDD'}}
type=raw, gcc-12_minimal_latest
type=raw, gcc-11_minimal_{{date 'YYYYMMDD'}}
type=raw, gcc-11_minimal_latest
type=raw, clang-16_minimal_latest
type=raw, clang-16_minimal_{{date 'YYYYMMDD'}}
- name: Build and push Docker image
if: ${{ inputs.minimal_version }}
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
provenance: false
context: ${{ env.DOCKERFILE_PATH }}/minimal
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
outputs: |
type=image,name=target,annotation-index.org.opencontainers.image.description=Minimal image to Build/Install/Run Arcane Framework. Available on AMD64 and ARM64.
build-and-push-full:
name: Ubuntu 22.04 Full Image
if: ${{ inputs.full_version }}
needs:
- build-and-push-minimal
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.USER_NAME }}/${{ env.IMAGE_OS_NAME }}
labels: |
org.opencontainers.image.title=ArcaneFramework
org.opencontainers.image.description=Full image to Build/Install/Run Arcane Framework
org.opencontainers.image.vendor=CEA
org.opencontainers.image.licenses=Apache2
tags: |
type=raw, full_latest
type=raw, full_{{date 'YYYYMMDD'}}
type=raw, gcc_full_latest
type=raw, clang_full_latest
type=raw, cuda_full_latest
type=raw, gcc-12_full_latest
type=raw, gcc-12_full_{{date 'YYYYMMDD'}}
type=raw, gcc-11_full_latest
type=raw, gcc-11_full_{{date 'YYYYMMDD'}}
type=raw, clang-16_full_latest
type=raw, clang-16_full_{{date 'YYYYMMDD'}}
type=raw, cuda-125_full_latest
type=raw, cuda-125_full_{{date 'YYYYMMDD'}}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
provenance: false
context: ${{ env.DOCKERFILE_PATH }}/full
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
outputs: |
type=image,name=target,annotation-index.org.opencontainers.image.description=Full image to Build/Install/Run Arcane Framework. Available on AMD64 and ARM64.