# This creates a Release Draft
# Adjust the release message in the web GUI and publish the release there.

name: Draft a Release

on:
  workflow_dispatch:

jobs:
  setup-release-draft:
    runs-on: ubuntu-latest
    steps:
      - name: Fetch repo
        uses: actions/checkout@v4

      - name: Fetch dependencies
        run: |
          sudo apt update -y -q
          sudo apt install python3-fontforge jq nodejs wkhtmltopdf -y -q
          npm install nunjucks

      # Ubuntu 20.04 has only fontforge release 2020, but there are some vital bugfixes in the 2023 release
      # This can be replaced with the ordinary apt package when Ubuntu updates, probably with 23.10
      # On the other hand ... why not be on the latest release always?
      - name: Fetch FontForge
        run: |
          sudo apt install fuse -y -q
          curl -L "https://github.com/fontforge/fontforge/releases/download/20230101/FontForge-2023-01-01-a1dad3e-x86_64.AppImage" \
            --output fontforge
          chmod u+x fontforge
          echo Try appimage
          ./fontforge --version
          export PATH=`pwd`:$PATH
          echo "PATH=$PATH" >> $GITHUB_ENV
          echo Try appimage with path
          fontforge --version

      - name: Determine version
        id: rel_ver
        run: |
          REL_VERSION=$(jq -r '.version' package.json)
          echo "Release version ${REL_VERSION}"
          echo "ver=${REL_VERSION}" >> $GITHUB_OUTPUT

      - name: Create the assets
        run: |
          make

      - name: Crate archive
        id: archive
        run: |
          make pack
          ZIPFILE=$(ls font-logos-*zip )
          echo "ZIPFILE=${ZIPFILE}"
          echo "filename=${ZIPFILE}" >> $GITHUB_OUTPUT

      - name: Adjust release tag
        uses: EndBug/latest-tag@v1
        with:
          ref: "v${{ steps.rel_ver.outputs.ver }}"

      - name: Create release draft
        uses: softprops/action-gh-release@v2
        with:
          draft: true
          tag_name: "v${{ steps.rel_ver.outputs.ver }}"
          files: |
            ${{ steps.archive.outputs.filename }}
          generate_release_notes: true
