diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9423399..704665f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,291 +9,312 @@ on: - 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 +env: + # ORG: condaforge + ORG: mtgrigorov - - 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 +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] + # 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: linux-anvil-cos7 + DOCKER_TAG: ["latest"] + DOCKER_IMAGES: "<>/linux-anvil-cos7-x86_64:<>,<>/linux-anvil-ppc64le:<>,<>/linux-anvil-aarch64:<>" + + - DOCKER_MANIFEST: linux-anvil-alma + DOCKER_TAG: ["8"] + DOCKER_IMAGES: "<>/linux-anvil-alma-x86_64:<>,<>/linux-anvil-alma-ppc64le:<>,<>/linux-anvil-alma-aarch64:<>" - - 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 + - DOCKER_MANIFEST: linux-anvil-ubi-cuda + DOCKER_TAG: ["11.0"] + DOCKER_IMAGES: "<>/linux-anvil-cuda:<>,<>/linux-anvil-ppc64le-cuda:<>,<>/linux-anvil-aarch64-cuda:<>" + + - 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: "<>/linux-anvil-cuda:<>,<>/linux-anvil-ppc64le-cuda:<>,<>/linux-anvil-aarch64-cuda:<>" steps: + - name: Interpolate placeholders + id: interpolate + run: | + INTERPOLATED=$(echo ${{ matrix.cfg.DOCKER_IMAGES }} | sed "s/<>/${{ env.ORG }}/g" | sed "s/<>/${{ matrix.cfg.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: ${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }} - images: ${{ matrix.cfg.DOCKER_IMAGES }} + inputs: ${{ env.ORG }}/${{ matrix.cfg.DOCKER_MANIFEST }}:${{ matrix.cfg.DOCKER_TAG }} + images: ${{ steps.interpolate.outputs.DOCKER_IMAGES }} push: false - name: Deploy manifests diff --git a/scripts/deploy-mgrigorov b/scripts/deploy-mgrigorov index 33248d7..4f6d624 100755 --- a/scripts/deploy-mgrigorov +++ b/scripts/deploy-mgrigorov @@ -6,12 +6,12 @@ docker images # dockerhub echo ${DH_PASSWORD} | docker login -u ${DH_USER} --password-stdin -docker tag condaforge/${DOCKERIMAGE}:${DOCKERTAG} mtgrigorov/${DOCKERIMAGE}:${DOCKERTAG} -docker images -docker push mtgrigorov/${DOCKERIMAGE}:${DOCKERTAG} +# docker tag condaforge/${DOCKERIMAGE}:${DOCKERTAG} mtgrigorov/${DOCKERIMAGE}:${DOCKERTAG} +# docker images +docker push ${ORG}/${DOCKERIMAGE}:${DOCKERTAG} # quay.io echo ${CFD_QUAY_PASSWORD} | docker login -u ${CFD_QUAY_USER} --password-stdin quay.io -docker tag condaforge/${DOCKERIMAGE}:${DOCKERTAG} quay.io/mgrigorov/${DOCKERIMAGE}:${DOCKERTAG} +docker tag ${ORG}/${DOCKERIMAGE}:${DOCKERTAG} quay.io/mgrigorov/${DOCKERIMAGE}:${DOCKERTAG} docker images docker push quay.io/mgrigorov/${DOCKERIMAGE}:${DOCKERTAG}