Skip to content

Image Creator

Image Creator #31

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
doc_version:
description: 'Build Doc Image'
required: true
type: boolean
env:
REGISTRY: 'ghcr.io'
USER_NAME: 'arcaneframework'
IMAGE_OS_NAME: 'test_ubuntu-2204'
IMAGE_OS_TAG: 'gcc-12_clang-16'
DOCKERFILE_PATH: './dockerfiles'
jobs:
# Quand on demande minimal et full, le minimal doit être fait avant le full.
build-and-push-minimal:
name: U22_G12_C16 Minimal Image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
if: ${{ inputs.minimal_version }}
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
if: ${{ inputs.minimal_version }}
uses: docker/login-action@v2
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@v4
with:
images: ${{ env.REGISTRY }}/${{ env.USER_NAME }}/${{ env.IMAGE_OS_NAME }}
labels: |
org.opencontainers.image.title=ArcaneFramework
org.opencontainers.image.description=Image to Build/Install/Run Arcane Framework
org.opencontainers.image.vendor=CEA
tags: |
type=raw, gcc_minimal_latest
type=raw, clang_minimal_latest
type=raw, gcc-12_minimal_latest
type=raw, clang-16_minimal_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_minimal_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_minimal_{{date 'YYYYMMDD'}}
- name: Build and push Docker image
if: ${{ inputs.minimal_version }}
uses: docker/build-push-action@v4
with:
platforms: linux/amd64,linux/arm64
provenance: false
file: ${{ env.DOCKERFILE_PATH }}/minimal/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-and-push-full:
name: U22_G12_C16 Full Image
if: ${{ inputs.full_version }}
needs:
- build-and-push-minimal
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.USER_NAME }}/${{ env.IMAGE_OS_NAME }}
labels: |
org.opencontainers.image.title=ArcaneFramework
org.opencontainers.image.description=Image to Build/Install/Run Arcane Framework
org.opencontainers.image.vendor=CEA
tags: |
type=raw, gcc_full_latest
type=raw, clang_full_latest
type=raw, gcc-12_full_latest
type=raw, clang-16_full_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_full_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_full_{{date 'YYYYMMDD'}}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
platforms: linux/amd64,linux/arm64
provenance: false
file: ${{ env.DOCKERFILE_PATH }}/full/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-and-push-doc:
name: U22_G12_C16 Doc Image
if: ${{ inputs.doc_version }}
needs:
- build-and-push-minimal
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.USER_NAME }}/${{ env.IMAGE_OS_NAME }}
labels: |
org.opencontainers.image.title=ArcaneFramework
org.opencontainers.image.description=Image to Build/Install/Run Arcane Framework
org.opencontainers.image.vendor=CEA
tags: |
type=raw, gcc_doc_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_doc_latest
type=raw, ${{ env.IMAGE_OS_TAG }}_doc_{{date 'YYYYMMDD'}}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
file: ${{ env.DOCKERFILE_PATH }}/doc/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}