name: Build

# on:
#   push:
#     tags:
#       - "v[0-9]+.[0-9]+.[0-9]+"
#       - "v[0-9]+.[0-9]+.[0-9]+*"
#   workflow_dispatch:

env:
  REGISTRY: ${{ vars.CONTAINER_REGISTRY }}
  REGISTRY_USERNAME: ${{ vars.CONTAINER_REGISTRY_USERNAME }}
  REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }}
  CONTAINER_IMAGE_NAME: ${{ vars.CONTAINER_REGISTRY }}/${{ vars.CONTAINER_IMAGE_OWNER }}/${{ vars.CONTAINER_IMAGE_NAME }}
  IMAGE_VERSION: build

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
        with:
          config-inline: |
            [registry."${{ env.REGISTRY }}"]
              ca=["/etc/ssl/certs/ca-certificates.crt"]
      - name: Tag Version
        run: |
          if [[ "${{ github.event_name }}" == "push" ]]; then
            echo "IMAGE_VERSION=${{ github.ref_name }}" | sed 's/v//g' >> $GITHUB_ENV
          else
            echo "IMAGE_VERSION=${{ env.IMAGE_VERSION }}-${{ github.run_number }}" >> $GITHUB_ENV
          fi
      - name: Login in to registry
        uses: docker/login-action@v2
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ env.REGISTRY_USERNAME }}
          password: ${{ env.REGISTRY_PASSWORD }}
      - name: Build and push docker image
        uses: docker/build-push-action@v3
        with:
          platforms: linux/amd64
          context: .
          file: ./docker/Dockerfile
          tags: ${{ env.CONTAINER_IMAGE_NAME }}:latest,${{ env.CONTAINER_IMAGE_NAME }}:${{ env.IMAGE_VERSION }}
          push: true
