name: Release Creation

on:
  release:
    types: [published]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "💡 The ${{ gitea.repository }} repository will be cloned to the runner."

      - uses: https://github.com/RouxAntoine/checkout@v3.5.4

      # get part of the tag after the `v`
      - name: Extract tag version number
        id: get_version
        uses: https://github.com/battila7/get-version-action@v2

      # Substitute the Manifest and Download URLs in the system.json
      - name: Substitute Manifest and Download Links For Versioned Ones
        id: sub_manifest_link_version
        uses: https://github.com/microsoft/variable-substitution@v1
        with:
          files: "system.json"
        env:
          version: ${{steps.get_version.outputs.version-without-v}}
          url: https://www.uberwald.me/gitea/${{gitea.repository}}
          manifest: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/latest/system.json
          download: https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-ecryme-${{github.event.release.tag_name}}.zip

      # Build CSS from LESS
      - uses: https://github.com/actions/setup-node@v4
        with:
          node-version: "20"
      - run: npm install && npm run build

      # Create a zip file with all files required by the system to add to the release
      - run: |
          apt update -y
          apt install -y zip jq

      - run: zip -r ./fvtt-ecryme-${{github.event.release.tag_name}}.zip system.json README.md LICENSE.md changelog.md css/ fonts/ images/ lang/ modules/ styles/ packs/ templates/ translated/ welcome-message-ecryme.html

      - name: Upload release assets
        env:
          GITEA_TOKEN: ${{ secrets.ALLOW_PUSH_RELEASE }}
          TAG_NAME: ${{ github.event.release.tag_name }}
          REPO: ${{ gitea.repository }}
        run: |
          RELEASE_ID=$(curl -s -H "Authorization: token $GITEA_TOKEN" \
            "https://www.uberwald.me/gitea/api/v1/repos/$REPO/releases/tags/$TAG_NAME" | jq -r '.id')
          curl -s -H "Authorization: token $GITEA_TOKEN" \
            -H "Content-Type: application/zip" \
            --data-binary @./fvtt-ecryme-$TAG_NAME.zip \
            "https://www.uberwald.me/gitea/api/v1/repos/$REPO/releases/$RELEASE_ID/assets?name=fvtt-ecryme-$TAG_NAME.zip"
          curl -s -H "Authorization: token $GITEA_TOKEN" \
            -H "Content-Type: application/json" \
            --data-binary @./system.json \
            "https://www.uberwald.me/gitea/api/v1/repos/$REPO/releases/$RELEASE_ID/assets?name=system.json"
