name: uBO release

on:
  create:
    branches: master

permissions:
  contents: read

jobs:
  build:
    permissions:
      contents: write # for creating release
    name: Build packages
    runs-on: ubuntu-slim
    if: startsWith(github.ref, 'refs/tags/')
    steps:
      - name: Clone repository
        uses: actions/checkout@v4
        with:
          persist-credentials: false
      - name: Clone uAssets
        run: |
          tools/pull-assets.sh
      - name: Get release information
        run: |
          echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
      - name: Build MV2 packages
        run: |
          tools/make-chromium.sh ${{ env.VERSION }}
          tools/make-firefox.sh ${{ env.VERSION }}
      - name: Assemble release notes
        run: |
          > release.body.txt
          grep -m1 -B10000 -- "----------" CHANGELOG.md >> release.body.txt
          sed -e 's/%version%/${{ env.VERSION }}/g' .github/workflows/RELEASE.HEAD.md >> release.body.txt
      - name: Create GitHub release
        id: create_release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh release create ${{ env.VERSION }} \
            --title "${{ env.VERSION }}" \
            --prerelease \
            --draft \
            --notes-file release.body.txt
          gh release upload ${{ env.VERSION }} \
            dist/build/uBlock0_${{ env.VERSION }}.chromium.zip \
            dist/build/uBlock0_${{ env.VERSION }}.firefox.xpi
