Skip to content

Build base compilers docker images #49

Build base compilers docker images

Build base compilers docker images #49

Workflow file for this run

name: Build base compilers docker images
on:
push:
paths:
- '/docker/Dockerfile.nvidia'
- '/docker/Dockerfile.cpu'
- '/docker/Dockerfile.amd'
workflow_dispatch:
inputs:
tags:
description: 'Build compiler bases'
schedule:
# Run once a week
- cron: "0 13 * * 1"
jobs:
deploy-docker-bases:
name: ${{ matrix.tag }}
runs-on: ${{ matrix.runner }}
env:
DOCKER_BUILDKIT: "1"
strategy:
fail-fast: false
matrix:
include:
- tag: 'devitocodes/bases:nvidia-nvc'
arch: 'arch=nvc'
version: ''
dockerfile: './docker/Dockerfile.nvidia'
runner: ["self-hosted", "gpu", "docker", "openmp"]
- tag: 'devitocodes/bases:nvidia-nvcc'
arch: 'arch=nvcc'
version: ''
dockerfile: './docker/Dockerfile.nvidia'
runner: ["self-hosted", "gpu", "docker", "openmp"]
- tag: 'devitocodes/bases:nvidia-clang'
arch: 'arch=clang'
# clang is only officialy supporting cuda<11.5. The latest nvidia sdk with cuda 11.5 is 21.11 (last of 2021)
# We cannot use newer ones such as 22-1 because the package manager automatically installs the latest 2022
# that re-install the latest (11.7) version on top of it.
# For more info check https://llvm.org/docs/CompileCudaWithLLVM.html and the Prerequisites
version: 'ver=nvhpc-21-11'
dockerfile: './docker/Dockerfile.nvidia'
runner: ["self-hosted", "gpu", "openacc"]
- tag: 'devitocodes/bases:amd'
arch: ''
version: ''
dockerfile: './docker/Dockerfile.amd'
runner: ["self-hosted", "gpu", "docker", "openmp", "aomp"]
# These ones are tiny runs on default
- tag: 'devitocodes/bases:cpu-gcc'
arch: 'arch=gcc'
version: ''
dockerfile: './docker/Dockerfile.cpu'
runner: ubuntu-latest
- tag: 'devitocodes/bases:cpu-icc'
arch: 'arch=icc'
version: ''
dockerfile: './docker/Dockerfile.cpu'
runner: ubuntu-latest
- tag: 'devitocodes/bases:cpu-nvc'
arch: 'arch=nvc-host'
version: ''
dockerfile: './docker/Dockerfile.nvidia'
runner: ["self-hosted", "gpu", "docker", "openmp"]
steps:
- name: Checkout devito
uses: actions/checkout@v3
- name: Check event name
run: echo ${{ github.event_name }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: cleanup
run: docker system prune -a -f
- name: Docker image
uses: docker/build-push-action@v3
with:
context: .
file: ${{ matrix.dockerfile }}
push: true
build-args: |
${{ matrix.arch }}
${{ matrix.version }}
tags: ${{ matrix.tag }}