name: Build and push container image
on:
  push:
    branches:
      - master
jobs:
  build:
    runs-on: ubuntu-22.04-node
    steps:
      - name: Setup Docker
        run: |
          apt-get update
          apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release
          curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
          echo \
            "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
            $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
          apt-get update
          apt-get -y install docker-ce docker-ce-cli containerd.io
      - name: Checkout branch
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
      - name: Login to Gitea
        uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
        with:
          registry: ${{ secrets.DOCKER_REGISTRY }}
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_TOKEN }}
      - name: Build and push image
        uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0
        with:
          context: .
          file: Dockerfile
          platforms: linux/amd64
          push: true
          tags: ${{ secrets.DOCKER_REGISTRY }}/toast/corn-utility:main
          cache-from: type=registry,ref=${{ secrets.DOCKER_REGISTRY }}/toast/corn-utility:main
          cache-to: type=inline