name: Docker Image CI

on:
  push:
    branches:
      - main
      - dev

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        submodules: 'true'
    - name: Get current date
      id: date
      run: echo "today=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT

    - name: Set up QEMU
      uses: docker/setup-qemu-action@v2

    - name: Set up Docker Buildx
      id: buildx
      uses: docker/setup-buildx-action@v2
    - name: Available platforms
      run: echo ${{ steps.buildx.outputs.platforms }}      
    - name: Login to DockerHub
      uses: docker/login-action@v2
      with:
       username: ${{ secrets.DOCKERHUB_USERNAME }}
       password: ${{ secrets.DOCKERHUB_TOKEN }}

    - name: Build and push
      uses: docker/build-push-action@v4
      with:
          context: .
          file: ./docker/Dockerfile
          push: true
          platforms: linux/amd64,linux/arm64
          tags: |
            ${{ github.repository }}:${{ steps.date.outputs.today }}
            ${{ github.repository }}:${{ contains(github.ref,'main') && 'latest' || github.ref_name }}
    - name: Docker Hub Description
      uses: peter-evans/dockerhub-description@v3
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_TOKEN }}
        repository: ${{ github.repository }}
        readme-filepath: ./README.md