name: Release

on:
  push:
    tags:
      - nightly-*

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '16'
      - run: |
          corepack enable
          yarn install --frozen-lockfile
      
      - name: Set env
        run: echo "RELEASE_FILE=qb-web-${GITHUB_REF#refs/*/}.zip" >> $GITHUB_ENV

      - name: Pack Release
        run: |
          yarn run build
          # see https://github.com/qbittorrent/qBittorrent/pull/10485, fixed in qb v4.2.0
          cp dist/public/{index,login}.html
          cp INSTALL.md dist
          zip -r $RELEASE_FILE dist

      - name: Publish
        run: |
          cd dist/public
          git init
          git config user.name ${{ github.actor }}
          git config user.email ${{ github.actor }}@users.noreply.github.com
          git remote add origin https://x-access-token:${{ github.token }}@github.com/${{ github.repository }}.git
          git checkout -b gh-pages
          git add --all
          git commit -m "Publish"
          git push origin gh-pages -f
      
      - id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: ${{ github.ref }}
          prerelease: true

      - uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ${{ env.RELEASE_FILE }}
          asset_name: ${{ env.RELEASE_FILE }}
          asset_content_type: application/zip
