name: Build docker images (scheduled) on: push: branches: - build_ci_docker_image* repository_dispatch: workflow_dispatch: workflow_call: inputs: image_postfix: required: true type: string schedule: - cron: "17 0 * * *" concurrency: group: docker-images-builds cancel-in-progress: false jobs: latest-docker: name: "Latest PyTorch [dev]" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-all-latest-gpu build-args: | REF=main push: true tags: huggingface/transformers-all-latest-gpu${{ inputs.image_postfix }} - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the transformers-all-latest-gpu docker build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} flash-attn-ci-image: name: "PyTorch with Flash Attn [dev]" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-all-latest-gpu build-args: | REF=main PYTORCH=2.8.0 TORCHCODEC=0.7.0 FLASH_ATTN=yes push: true tags: huggingface/transformers-all-latest-gpu${{ inputs.image_postfix }}:flash-attn - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the transformers-all-latest-gpu docker build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} latest-torch-deepspeed-docker: name: "Latest PyTorch + DeepSpeed" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-pytorch-deepspeed-latest-gpu build-args: | REF=main push: true tags: huggingface/transformers-pytorch-deepspeed-latest-gpu${{ inputs.image_postfix }} - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER}} title: 🤗 Results of the transformers-pytorch-deepspeed-latest-gpu docker build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} doc-builder: name: "Doc builder" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-doc-builder push: true tags: huggingface/transformers-doc-builder - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the huggingface/transformers-doc-builder docker build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} latest-pytorch-amd: name: "Latest PyTorch (AMD) [dev]" runs-on: group: aws-highcpu-32-priv steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-pytorch-amd-gpu build-args: | REF=main push: true tags: huggingface/transformers-pytorch-amd-gpu${{ inputs.image_postfix }} - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the huggingface/transformers-pytorch-amd-gpu build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} cache-latest-pytorch-amd: name: "Cache Latest Pytorch (AMD) Image" needs: latest-pytorch-amd runs-on: group: amd-mi325-1gpu steps: - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Pull and save docker image to cache run: | image="huggingface/transformers-pytorch-amd-gpu" final_path="/mnt/image-cache/transformers-pytorch-amd-gpu.tar" tmp_path="${final_path}.tmp" echo "Pulling image: ${image}" docker pull "${image}" echo "Saving to temp file: ${tmp_path}" docker save "${image}" -o "${tmp_path}" echo "Moving to final path: ${final_path}" mv -f "${tmp_path}" "${final_path}" echo "Cache populated successfully at ${final_path}" latest-pytorch-deepspeed-amd: name: "PyTorch + DeepSpeed (AMD) [dev]" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-pytorch-deepspeed-amd-gpu build-args: | REF=main push: true tags: huggingface/transformers-pytorch-deepspeed-amd-gpu${{ inputs.image_postfix }} - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the transformers-pytorch-deepspeed-amd-gpu build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }} latest-quantization-torch-docker: name: "Latest Pytorch + Quantization [dev]" runs-on: group: aws-general-8-plus steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Check out code uses: actions/checkout@v4 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push uses: docker/build-push-action@v5 with: context: ./docker/transformers-quantization-latest-gpu build-args: | REF=main push: true tags: huggingface/transformers-quantization-latest-gpu${{ inputs.image_postfix }} - name: Post to Slack if: always() uses: huggingface/hf-workflows/.github/actions/post-slack@main with: slack_channel: ${{ secrets.CI_SLACK_CHANNEL_DOCKER }} title: 🤗 Results of the transformers-quantization-latest-gpu build status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}