name: Build and Publish Docker (latest)

on:
  push:
    branches:
    - main
    - cuda12

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v3
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      -
        name: Login to DockerHub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Login to Volces CR
        uses: docker/login-action@v3
        with:
          registry: dp-ve-registry-cn-beijing.cr.volces.com
          username: ${{ secrets.VOLCES_CR_USERNAME }}
          password: ${{ secrets.VOLCES_CR_TOKEN }}
      -
        name: Free Disk Space (Ubuntu)
        uses: jlumbroso/free-disk-space@main
        with:
          # this might remove tools that are actually needed,
          # if set to "true" but frees about 6 GB
          tool-cache: false

          # all of these default to true, but feel free to set to
          # "false" if necessary for your workflow
          android: true
          dotnet: true
          haskell: true
          large-packages: true
          docker-images: false
          swap-storage: false
      -
        name: Set up swap space
        uses: pierotofy/set-swap-space@v1.0
        with:
          swap-size-gb: 10
      -
        name: Build and push with rdma
        uses: docker/build-push-action@v6
        with:
          context: ./docker/rdma/
          push: true
          tags: |
            dptechnology/unicore:latest-pytorch2.3.0-cuda12.4-rdma
            dp-ve-registry-cn-beijing.cr.volces.com/dplc/unicore:latest-pytorch2.3.0-cuda12.4-rdma
