name: Create Release

env:
  GITHUB_TOKEN: ${{ secrets.token }}

on:
  push:
    branches:
      - main
      - master

jobs:
  artifact:
    uses: h2-invent/jitsi-admin-matrix-bot/.github/workflows/task-artifact.yml@master

  create_release:
    needs:
      - artifact
    runs-on: ubuntu-latest
    outputs:
      create_release_output: ${{ steps.version.outputs.version }}
    steps:

      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - uses: paulhatch/semantic-version@v5.0.2
        id: version
        with:
          tag_prefix: ""
          major_pattern: "(MAJOR)"
          minor_pattern: "(MINOR)"
          change_path: .
          version_format: "${major}.${minor}.${patch}"
      - name: Write semantic Version in config file
        uses: jacobtomlinson/gha-find-replace@v3
        with:
          find: "<version-addhere>"
          replace: "${{ steps.version.outputs.version }}"
          regex: false
          include: "config.mjs"

      - uses: actions/download-artifact@v3
        with:
          name: artifact_${{github.run_number}}

      - run: unzip -qq artifact_${{github.run_number}}.zip -d artifact



      - name: Archive Release for application
        uses: thedoctor0/zip-release@0.7.1
        with:
          type: 'zip'
          filename: 'application.zip'
          exclusions: '*.git* *.github*'
          directory: artifact

      - name: Create new Release with semantic-version tag
        uses: ncipollo/release-action@v1
        id: create_release
        with:
          draft: false
          prerelease: false
          name: Release ${{ steps.version.outputs.version }}
          tag: ${{ steps.version.outputs.version }}
          artifacts: artifact/application.zip
          artifactContentType: application/zip
          bodyFile: RELEASE_NOTE.md

  upload_dockerhub_main:
    needs:
      - create_release
    uses: h2-invent/jitsi-admin-matrix-bot/.github/workflows/task-upload-docker-hub.yml@master
    with:
      reponame: 'h2invent/jitsi-admin-matrix-bot'
      dockerfile_path: './Dockerfile'
      directory: '.'
      version: h2invent/jitsi-admin-matrix-bot:latest,h2invent/jitsi-admin-matrix-bot:${{ needs.create_release.outputs.create_release_output }}
    secrets:
      dockerhub_password: ${{ secrets.DOCKERHUB_TOKEN }}
      dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}