name: Docker Version Release

on:
  create:
    tags:
      - v*

jobs:

  docker-version:
    runs-on: ubuntu-latest

    steps:

      - name: Check Out Repo
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKER_HUB_USERNAME }}
          password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

      - name: Set up QEMU
        uses: docker/setup-qemu-action@master
        with:
          platforms: all

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

      - name: Get the version
        id: get_version
        run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}

      - name: Build and push
        id: docker_build
        uses: docker/build-push-action@v3
        with:
          context: ./
          file: ./Dockerfile
          platforms: linux/amd64,linux/arm64,linux/arm/v7
          push: true
          tags: ${{ secrets.DOCKER_HUB_USERNAME }}/plex-meta-manager:${{ steps.get_version.outputs.VERSION }}

      - name: Discord Success Notification
        uses: meisnate12/discord-notifications@master
        if: success()
        with:
          webhook_id: ${{ secrets.BUILD_WEBHOOK_ID }}
          webhook_token: ${{ secrets.BUILD_WEBHOOK_TOKEN }}
          title: "${{ steps.get_version.outputs.VERSION }} build: **Success**"
          url: https://github.com/meisnate12/Plex-Meta-Manager/actions/runs/${{ github.run_id }}
          username: Metabot
          avatar_url: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/.github/pmm.png
          author: Docker
          author_icon_url: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/.github/docker.png

      - name: Discord Failure Notification
        uses: meisnate12/discord-notifications@master
        if: failure()
        with:
          webhook_id: ${{ secrets.BUILD_WEBHOOK_ID }}
          webhook_token: ${{ secrets.BUILD_WEBHOOK_TOKEN }}
          title: "${{ steps.get_version.outputs.VERSION }} build: **Failure**"
          color: 0xe30c43
          url: https://github.com/meisnate12/Plex-Meta-Manager/actions/runs/${{ github.run_id }}
          username: Metabot
          avatar_url: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/.github/pmm.png
          author: Docker
          author_icon_url: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/.github/docker.png

      - name: Checkout Configs Repo
        uses: actions/checkout@v3
        with:
          repository: meisnate12/Plex-Meta-Manager-Configs
          token: ${{ secrets.PAT }}
          path: pmmconfigs

      - name: Create & Push Tag
        working-directory: ./pmmconfigs
        run: |
          git tag ${{ steps.get_version.outputs.VERSION }}
          git push origin ${{ steps.get_version.outputs.VERSION }}

      - name: Get Changelog
        id: notes
        run: echo ::set-output name=notes::$(cat CHANGELOG -Raw)

      - name: Create release
        id: create_release
        uses: softprops/action-gh-release@v1
        with:
          body: ${{ steps.notes.outputs.notes }}
          token: ${{ secrets.PAT }}
          tag_name: ${{ steps.get_version.outputs.VERSION }}