name: Build pr ci-docker on: push: branches: - push-ci-image # for now let's only build on this branch repository_dispatch: workflow_call: inputs: image_postfix: required: true type: string schedule: - cron: "6 0 * * *" concurrency: group: ${{ github.workflow }} cancel-in-progress: true permissions: contents: read jobs: build: runs-on: ubuntu-22.04 if: ${{ contains(github.event.head_commit.message, '[build-ci-image]') || contains(github.event.head_commit.message, '[push-ci-image]') && '!cancelled()' || github.event_name == 'schedule' }} strategy: matrix: file: ["quality", "consistency", "custom-tokenizers", "torch-light", "exotic-models", "examples-torch"] continue-on-error: true steps: - name: Set tag env: COMMIT_MESSAGE: ${{ github.event.head_commit.message }} run: | if echo "$COMMIT_MESSAGE" | grep -q '\[build-ci-image\]'; then echo "TAG=huggingface/transformers-${{ matrix.file }}:dev" >> "$GITHUB_ENV" echo "setting it to DEV!" else echo "TAG=huggingface/transformers-${{ matrix.file }}" >> "$GITHUB_ENV" fi - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Check out code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Login to DockerHub uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build ${{ matrix.file }}.dockerfile uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0 with: context: ./docker build-args: | REF=${{ github.sha }} file: "./docker/${{ matrix.file }}.dockerfile" push: ${{ contains(github.event.head_commit.message, 'ci-image]') || github.event_name == 'schedule' }} tags: ${{ env.TAG }} notify: runs-on: ubuntu-22.04 if: ${{ contains(github.event.head_commit.message, '[build-ci-image]') || contains(github.event.head_commit.message, '[push-ci-image]') && '!cancelled()' || github.event_name == 'schedule' }} steps: - name: Post to Slack if: ${{ contains(github.event.head_commit.message, '[push-ci-image]') && github.event_name != 'schedule' }} uses: huggingface/hf-workflows/.github/actions/post-slack@a88e7fa2eaee28de5a4d6142381b1fb792349b67 # main with: slack_channel: "#transformers-ci-circleci-images" title: 🤗 New docker images for CircleCI are pushed. status: ${{ job.status }} slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}