Skip to content

Add a CI job to build a Docker manifest #3

Add a CI job to build a Docker manifest

Add a CI job to build a Docker manifest #3

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
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 condaforge/$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.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
cfg:
- DOCKER_MANIFEST: condaforge/linux-anvil-cos7
DOCKER_TAG: "latest"
DOCKER_IMAGES: condaforge/linux-anvil-cos7-x86_64:latest,condaforge/linux-anvil-ppc64le:latest,condaforge/linux-anvil-aarch64:latest
- DOCKER_MANIFEST: condaforge/linux-anvil-alma
DOCKER_TAG: "8"
DOCKER_IMAGES: condaforge/linux-anvil-alma-x86_64:8,condaforge/linux-anvil-alma-ppc64le:8,condaforge/linux-anvil-alma-aarch64:8
steps:
- name: Create Docker manifests
uses: Noelware/[email protected]
with:
inputs: ${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }}
images: ${{ matrix.cfg.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.cfg.DOCKER_MANIFEST }}
DOCKERTAG: ${{ matrix.cfg.DOCKER_TAG }}
run: |
./scripts/deploy-mgrigorov