Skip to content

Add a CI job to build a Docker manifest #11

Add a CI job to build a Docker manifest

Add a CI job to build a Docker manifest #11

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
schedule:
- cron: "0 6 * * SUN" # Once weekly on Sunday @ 0600 UTC
workflow_dispatch: null
env:
# ORG: condaforge
ORG: mtgrigorov
jobs:
# build:
# name: ${{ matrix.cfg.DOCKERIMAGE }}:${{ matrix.cfg.DOCKERTAG }} (${{ matrix.cfg.DISTRO_ARCH }})
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# cfg:
# - DOCKERIMAGE: linux-anvil-comp7
# DOCKERTAG: latest
# DISTRO_NAME: "centos"
# DISTRO_VER: "6"
# - DOCKERIMAGE: linux-anvil-cos7-x86_64
# DOCKERTAG: latest
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-ppc64le
# DOCKERTAG: latest
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-aarch64
# DOCKERTAG: latest
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.0"
# CUDA_VER: "11.0.3"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.1"
# CUDA_VER: "11.1.1"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.2"
# CUDA_VER: "11.2.2"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.3"
# CUDA_VER: "11.3.1"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.4"
# CUDA_VER: "11.4.3"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.5"
# CUDA_VER: "11.5.2"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.6"
# CUDA_VER: "11.6.2"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.7"
# CUDA_VER: "11.7.1"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-cuda
# DOCKERTAG: "11.8"
# CUDA_VER: "11.8.0"
# DISTRO_NAME: "centos"
# DISTRO_VER: "7"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.0"
# CUDA_VER: "11.0.3"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.1"
# CUDA_VER: "11.1.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.2"
# CUDA_VER: "11.2.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.3"
# CUDA_VER: "11.3.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.4"
# CUDA_VER: "11.4.3"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.5"
# CUDA_VER: "11.5.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.6"
# CUDA_VER: "11.6.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.7"
# CUDA_VER: "11.7.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-ppc64le-cuda
# DOCKERTAG: "11.8"
# CUDA_VER: "11.8.0"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.0"
# CUDA_VER: "11.0.3"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.1"
# CUDA_VER: "11.1.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.2"
# CUDA_VER: "11.2.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.3"
# CUDA_VER: "11.3.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.4"
# CUDA_VER: "11.4.3"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.5"
# CUDA_VER: "11.5.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.6"
# CUDA_VER: "11.6.2"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.7"
# CUDA_VER: "11.7.1"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-aarch64-cuda
# DOCKERTAG: "11.8"
# CUDA_VER: "11.8.0"
# DISTRO_NAME: "ubi"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-alma-x86_64
# DOCKERFILE: linux-anvil-alma
# DOCKERTAG: "8"
# DISTRO_ARCH: "amd64"
# DISTRO_NAME: "almalinux"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-alma-aarch64
# DOCKERFILE: linux-anvil-alma
# DOCKERTAG: "8"
# DISTRO_ARCH: "arm64"
# DISTRO_NAME: "almalinux"
# DISTRO_VER: "8"
# - DOCKERIMAGE: linux-anvil-alma-ppc64le
# DOCKERFILE: linux-anvil-alma
# DOCKERTAG: "8"
# DISTRO_ARCH: "ppc64le"
# DISTRO_NAME: "almalinux"
# DISTRO_VER: "8"
# env:
# DOCKERIMAGE: ${{ matrix.cfg.DOCKERIMAGE }}
# DOCKERFILE: ${{ matrix.cfg.DOCKERFILE }}
# DOCKERTAG: ${{ matrix.cfg.DOCKERTAG }}
# CUDA_VER: ${{ matrix.cfg.CUDA_VER }}
# DISTRO_ARCH: ${{ matrix.cfg.DISTRO_ARCH }}
# DISTRO_NAME: ${{ matrix.cfg.DISTRO_NAME }}
# DISTRO_VER: ${{ matrix.cfg.DISTRO_VER }}
# steps:
# - uses: actions/checkout@v4
# - name: Enable experimental features (needed for squash)
# run: |
# sudo cp docker_daemon_config.json /etc/docker/daemon.json
# sudo service docker restart
# - name: Docker info
# run: |
# docker info
# - name: Configure qemu
# run: |
# ./download-qemu-static.sh
# - name: Build image
# run: |
# docker build \
# --build-arg CUDA_VER \
# --build-arg DISTRO_ARCH \
# --build-arg DISTRO_NAME \
# --build-arg DISTRO_VER \
# -t ${{ env.ORG }}/$DOCKERIMAGE:$DOCKERTAG \
# -f ${DOCKERFILE:-${DOCKERIMAGE}}/Dockerfile \
# --no-cache --squash .
# - name: Run image
# run: |
# ./.circleci/run_docker_build.sh
# - name: Deploy images
# # if: github.ref == 'refs/heads/main' && github.repository == 'conda-forge/docker-images'
# env:
# CFD_QUAY_USER: ${{ secrets.CFD_QUAY_USER }}
# CFD_QUAY_PASSWORD: ${{ secrets.CFD_QUAY_PASSWORD }}
# # DH_PASSWORD: ${{ secrets.DH_PASSWORD }}
# DH_USER: ${{ secrets.DOCKER_HUB_USER }}
# DH_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWD }}
# run: |
# ./scripts/deploy-mgrigorov
build-manifest:
# needs: [build]
name: ${{ matrix.DOCKER_MANIFEST }}:${{ matrix.DOCKER_TAG }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- DOCKER_MANIFEST: linux-anvil-cos7
DOCKER_TAG: ["latest"]
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cos7-x86_64:<<TAG>>,<<ORG>>/linux-anvil-ppc64le:<<TAG>>,<<ORG>>/linux-anvil-aarch64:<<TAG>>"
- DOCKER_MANIFEST: linux-anvil-alma
DOCKER_TAG: ["8"]
DOCKER_IMAGES: "<<ORG>>/linux-anvil-alma-x86_64:<<TAG>>,<<ORG>>/linux-anvil-alma-ppc64le:<<TAG>>,<<ORG>>/linux-anvil-alma-aarch64:<<TAG>>"
- DOCKER_MANIFEST: linux-anvil-ubi-cuda
DOCKER_TAG: ["11.0"]
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>"
- DOCKER_MANIFEST: linux-anvil-cos7-cuda
DOCKER_TAG: ["11.1", "11.2", "11.3", "11.4", "11.5", "11.6", "11.7", "11.8"]
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>"
steps:
- name: Interpolate placeholders
id: interpolate
run: |
INTERPOLATED=$(echo ${{ matrix.DOCKER_IMAGES }} | sed "s/<<ORG>>/${{ env.ORG }}/g" | sed "s/<<TAG>>/${{ matrix.DOCKER_TAG }}/g" )
echo "Interpolated: $INTERPOLATED"
echo "DOCKER_IMAGES=${INTERPOLATED}" >> "$GITHUB_OUTOUT"
- name: Create Docker manifests
uses: Noelware/docker-manifest-action@v0.3.0
env:
ORG: mtgrigorov
with:
inputs: ${{ env.ORG }}/${{ matrix.DOCKER_MANIFEST }}:${{ matrix.DOCKER_TAG }}
images: ${{ steps.interpolate.outputs.DOCKER_IMAGES }}
push: false
- name: Deploy manifests
# if: github.ref == 'refs/heads/main' && github.repository == 'conda-forge/docker-images'
env:
CFD_QUAY_USER: ${{ secrets.CFD_QUAY_USER }}
CFD_QUAY_PASSWORD: ${{ secrets.CFD_QUAY_PASSWORD }}
# DH_PASSWORD: ${{ secrets.DH_PASSWORD }}
DH_USER: ${{ secrets.DOCKER_HUB_USER }}
DH_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWD }}
DOCKERIMAGE: ${{ matrix.DOCKER_MANIFEST }}
DOCKERTAG: ${{ matrix.DOCKER_TAG }}
run: |
./scripts/deploy-mgrigorov