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

      - name: Setup Node.js
        uses: https://github.com/actions/setup-node@v3
        with:
          node-version: "20"

      - name: Install dependencies
        run: npm ci

      # Génération à la volée des compendiums (packs-src/ → packs/ LevelDB)
      - name: Compile compendium packs
        run: npm run pack:compile

      # Compilation CSS (LESS → css/) et bundle JavaScript (src/ → dist/)
      - name: Build CSS and JavaScript
        run: npm run build

      # 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/uberwald/fvtt-chroniques-de-l-etrange/releases/download/latest/system.json
          download: https://www.uberwald.me/gitea/uberwald/fvtt-chroniques-de-l-etrange/releases/download/${{github.event.release.tag_name}}/fvtt-chroniques-de-l-etrange.zip

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

      - run: zip -r ./fvtt-chroniques-de-l-etrange.zip system.json README.md CHANGELOG.md LICENSE.txt css/ fonts/ images/ lang/ packs/ src/ templates/

      - name: Setup Go
        uses: https://github.com/actions/setup-go@v4
        with:
          go-version: ">=1.20.1"

      - name: Upload release assets
        id: use-go-action
        uses: https://gitea.com/actions/release-action@main
        with:
          files: |-
            ./fvtt-chroniques-de-l-etrange.zip
            system.json
          api_key: "${{secrets.ALLOW_PUSH_RELEASE}}"

      - name: Publish to Foundry server
        uses: https://github.com/djlechuck/foundryvtt-publish-package-action@v1
        with:
          token: ${{ secrets.FOUNDRYVTT_RELEASE_TOKEN }}
          id: "fvtt-chroniques-de-l-etrange"
          version: ${{github.event.release.tag_name}}
          manifest: "https://www.uberwald.me/gitea/uberwald/fvtt-chroniques-de-l-etrange/releases/download/latest/system.json"
          notes: "https://www.uberwald.me/gitea/${{gitea.repository}}/releases/download/${{github.event.release.tag_name}}/fvtt-chroniques-de-l-etrange.zip"
          compatibility-minimum: "14"
          compatibility-verified: "14"
