Add a CI job to build a Docker manifest #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
schedule: | |
- cron: "0 6 * * SUN" # Once weekly on Sunday @ 0600 UTC | |
workflow_dispatch: null | |
env: | |
# REGISTRY_DH: condaforge | |
# REGISTRY_QUAY: condaforge | |
REGISTRY_DH: docker.io/mtgrigorov | |
REGISTRY_QUAY: quay.io/mgrigorov | |
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.REGISTRY_DH }}/$DOCKERIMAGE:$DOCKERTAG \ | |
# -t ${{ env.REGISTRY_QUAY }}/$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] | |
# if: github.ref == 'refs/heads/main' && github.repository == 'conda-forge/docker-images' | |
name: ${{ matrix.docker-registry }}/${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
docker-registry: [docker.io/mtgrigorov, quay.io/mgrigorov] | |
cfg: | |
- 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_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.1" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.2" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.3" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.4" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.5" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.6" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.7" | |
- DOCKER_MANIFEST: linux-anvil-cos7-cuda | |
DOCKER_IMAGES: "<<ORG>>/linux-anvil-cuda:<<TAG>>,<<ORG>>/linux-anvil-ppc64le-cuda:<<TAG>>,<<ORG>>/linux-anvil-aarch64-cuda:<<TAG>>" | |
DOCKER_TAG: "11.8" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Interpolate placeholders | |
id: interpolate | |
run: | | |
set -x | |
INTERPOLATED=`echo "${{ matrix.cfg.DOCKER_IMAGES }}" | sed "s#<<ORG>>#${{ matrix.docker-registry }}#g" | sed "s#<<TAG>>#${{ matrix.cfg.DOCKER_TAG }}#g"` | |
echo "DOCKER_IMAGES=${INTERPOLATED}" >> "$GITHUB_OUTPUT" | |
- name: Login to DockerHub registry | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_PASSWD }} | |
# username: ${{ secrets.DH_USER }} | |
# password: ${{ secrets.DH_PASSWORD }} | |
- name: Login to Quay.io registry | |
uses: docker/login-action@v2 | |
with: | |
registry: quay.io | |
username: ${{ secrets.CFD_QUAY_USER }} | |
password: ${{ secrets.CFD_QUAY_PASSWORD }} | |
- name: Push Docker manifest list for ${{ matrix.docker-registry }} | |
uses: Noelware/docker-manifest-action@v0.3.0 | |
env: | |
ORG: mtgrigorov | |
with: | |
inputs: ${{ matrix.docker-registry }}/${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }} | |
images: ${{ steps.interpolate.outputs.DOCKER_IMAGES }} | |
push: true | |