Skip to content

build_base_images

build_base_images #77

Workflow file for this run

name: build_base_images
env:
PLATFORMS_DEFAULT: linux/amd64
CUDA_VERSION_DEFAULT: 11.8.0
CUDNN_VERSION_DEFAULT: 8
ROCM_VERSION_DEFAULT: 5.7
on:
workflow_dispatch:
inputs:
platforms:
type: choice
description: 'Platform to build on'
default: 'linux/amd64'
required: true
options:
- linux/amd64
- linux/amd64,linux/arm64/v8
- linux/arm64/v8
cuda_version:
description: 'CUDA Version to use'
default: '11.8.0'
required: true
cudnn_version:
description: 'cuDNN Version to use'
default: '8'
required: true
rocm_version:
description: 'rocm Version to use'
default: '5.7'
required: true
push:
branches: [ master ]
paths:
- 'icetray_base/Dockerfile*'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Get current date
id: date
run: echo "current_date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
-
name: set CUDA version
id: cuda
run: echo "CUDA_VERSION=${{ github.event.inputs.cuda_version || env.CUDA_VERSION_DEFAULT }}" >> $GITHUB_ENV
-
name: set CUDNN version
id: cudnn
run: echo "CUDNN_VERSION=${{ github.event.inputs.cudnn_version || env.CUDNN_VERSION_DEFAULT }}" >> $GITHUB_ENV
-
name: set rocm version
id: rocm
run: echo "ROCM_VERSION=${{ github.event.inputs.rocm_version || env.ROCM_VERSION_DEFAULT }}" >> $GITHUB_ENV
-
name: set platforms
id: platforms
run: echo "PLATFORMS=${{ github.event.inputs.platforms || env.PLATFORMS_DEFAULT }}" >> $GITHUB_ENV
-
name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
swap-storage: true
-
name: More Free Space
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /usr/share/dotnet "$AGENT_TOOLSDIRECTORY"
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push base devel 20 04
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-20.04
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:devel-ubuntu20.04,
icecube/icetray-base:devel-ubuntu20.04-${{ env.current_date }}
-
name: Build and push base prod 20 04
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-prod-20.04
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:prod-ubuntu20.04,
icecube/icetray-base:prod-ubuntu20.04-${{ env.current_date }}
-
name: Build and push base devel 22 04
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-22.04
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:devel-ubuntu22.04,
icecube/icetray-base:devel-ubuntu22.04-${{ env.current_date }}
-
name: Build and push base devel 22 04 CUDA
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-22.04
platforms: ${{ env.PLATFORMS }}
build-args: |
BASE_IMAGE=nvidia/cuda:${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}}-devel-ubuntu22.04
tags: >
icecube/icetray-base:devel-ubuntu22.04-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}},
icecube/icetray-base:devel-ubuntu22.04-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}}-${{ env.current_date }}
-
name: Build and push base devel 22 04 ROCm
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-22.04
platforms: ${{ env.PLATFORMS }}
build-args: |
BASE_IMAGE=rocm/dev-ubuntu-22.04:${{ env.ROCM_VERSION }}-complete
tags: >
icecube/icetray-base:devel-ubuntu22.04-rocm${{ env.ROCM_VERSION }},
icecube/icetray-base:devel-ubuntu22.04-rocm${{ env.ROCM_VERSION }}-${{ env.current_date }}
-
name: Build and push base prod 22 04
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-prod-22.04
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:prod-ubuntu22.04,
icecube/icetray-base:prod-ubuntu22.04-${{ env.current_date }}
-
name: Build and push base devel rocky 8
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-rocky8
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:devel-rocky8,
icecube/icetray-base:devel-rocky8-${{ env.current_date }}
-
name: Build and push base devel rocky8 CUDA
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-rocky8
platforms: ${{ env.PLATFORMS }}
build-args: |
BASE_IMAGE=nvidia/cuda:${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}}-devel-rockylinux8
tags: >
icecube/icetray-base:devel-rocky8-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}},
icecube/icetray-base:devel-rocky8-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}}-${{ env.current_date }}
-
name: Build and push base devel rocky 9
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-rocky9
platforms: ${{ env.PLATFORMS }}
tags: >
icecube/icetray-base:devel-rocky9,
icecube/icetray-base:devel-rocky9-${{ env.current_date }}
-
name: Build and push base devel rocky9 CUDA
uses: docker/build-push-action@v3
with:
push: true
file: icetray_base/Dockerfile_base-devel-rocky9
platforms: ${{ env.PLATFORMS }}
build-args: |
BASE_IMAGE=nvidia/cuda:12.2.0-devel-rockylinux9
tags: >
icecube/icetray-base:devel-rocky9-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}},
icecube/icetray-base:devel-rocky9-cuda${{env.CUDA_VERSION}}-cudnn${{env.CUDNN_VERSION}}-${{ env.current_date }}
# -
# name: Build and push base devel debian sid
# uses: docker/build-push-action@v3
# with:
# push: true
# file: icetray_base/Dockerfile_base-devel-debian-sid
# platforms: linux/amd64,linux/arm64/v8
# tags: >
# icecube/icetray-base:devel-debian-sid,
# icecube/icetray-base:devel-debian-sid-${{ env.current_date }}