Try to use ${{ vars.** }} in matrix setting #34
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: docker.io/condaforge | ||
# REGISTRY_QUAY: quay.io/condaforge | ||
REGISTRY_DH: ${{ vars.REGISTRY_DH }} | ||
REGISTRY_QUAY: ${{ vars.REGISTRY_QUAY }} | ||
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 \ | ||
-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: conda_forge_daemon | ||
CFD_QUAY_USER: ${{ secrets.CFD_QUAY_USER }} | ||
CFD_QUAY_PASSWORD: ${{ secrets.CFD_QUAY_PASSWORD }} | ||
# DH_PASSWORD: ${{ secrets.DH_PASSWORD }} | ||
# DH_USER: condaforgebot | ||
DH_USER: ${{ secrets.DOCKER_HUB_USER }} | ||
DH_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWD }} | ||
run: | | ||
./scripts/deploy | ||
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: [${{ vars.REGISTRY_DH }}, ${{ vars.REGISTRY_QUAY }}] | ||
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: condaforgebot | ||
# 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/[email protected] | ||
with: | ||
inputs: ${{ matrix.docker-registry }}/${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }} | ||
images: ${{ steps.interpolate.outputs.DOCKER_IMAGES }} | ||
push: true | ||