name: Publish Release
on:
  push:
    tags: "*"

concurrency:
  group: release-${{ github.sha }}

jobs:
  publish-release:
    name: Publish Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Download workflow artifact
        uses: dawidd6/action-download-artifact@v9
        with:
          workflow: ci.yml
          commit: ${{ github.sha }}

      - name: Get release notes
        shell: python
        run: |
          import re, textwrap
          open_file = open("./data/page.kramo.Cartridges.metainfo.xml.in", "r", encoding="utf-8")
          string = open_file.read()
          open_file.close()
          string = re.findall("<release.*>\s*<description.*>\n([\s\S]*?)\s*</description>\s*<\/release>", string)[0]
          string = textwrap.dedent(string)
          open_file = open("release_notes", "w", encoding="utf-8")
          open_file.write(string)
          open_file.close()

      - name: Get tag name
        id: get_tag_name
        run: echo tag_name=${GITHUB_REF#refs/tags/} >> $GITHUB_OUTPUT

      - name: Publish release
        uses: softprops/action-gh-release@v2.2.2
        with:
          files: |
            Windows Installer/Cartridges Windows.exe
            macOS Application/Cartridges macOS.zip
          fail_on_unmatched_files: true
          tag_name: ${{ steps.get_tag_name.outputs.tag_name }}
          body_path: release_notes
