on:
  release:
    types: [created]

name: Build docker images
jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

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

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v3

    - name: Log into Docker Hub
      uses: docker/login-action@v3
      with:
        username: ${{ secrets.DOCKER_USERNAME }}
        password: ${{ secrets.DOCKER_ACCESS_TOKEN }}

    - name: Log into GitHub Container Registry
      uses: docker/login-action@v3
      with:
        registry: ghcr.io
        username: ${{ github.repository_owner }}
        password: ${{ github.token }}

    - name: Parse semver
      id: semver_parser 
      uses: booxmedialtd/ws-action-parse-semver@v1.4.7
      with:
        input_string: '${{ github.ref_name }}'
        version_extractor_regex: 'v(.*)$'

    - name: Build and push
      uses: docker/build-push-action@v6
      with:
        context: .
        platforms: linux/386,linux/amd64,linux/arm64
        build-args: |
          "VERSION=${{ github.ref_name }}"
        push: true
        tags: |
          axllent/mailpit:latest
          axllent/mailpit:${{ github.ref_name }}
          axllent/mailpit:v${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}
          ghcr.io/${{ github.repository }}:latest
          ghcr.io/${{ github.repository }}:${{ github.ref_name }}
          ghcr.io/${{ github.repository }}:v${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}