name: uBO Lite release

on: workflow_dispatch

permissions:
  contents: read

# I used the following project as template to get started:
# https://github.com/dessant/search-by-image/blob/master/.github/workflows/ci.yml

jobs:
  build:
    permissions:
      contents: write # for creating release
    name: Build packages
    runs-on: ubuntu-latest
    steps:
      - name: Clone repository
        uses: actions/checkout@v3
        with:
          persist-credentials: false
      # https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
      # Chromium
      - name: Build Chromium uBOLite MV3 packages
        run: |
          tools/make-mv3.sh chromium full
          echo "PACKAGE=$(basename $(ls dist/build/uBOLite_*.chromium.mv3.zip))" >> $GITHUB_ENV
          echo "TAGNAME=$(basename $(ls dist/build/uBOLite_*.chromium.mv3.zip) .chromium.mv3.zip)" >> $GITHUB_ENV
          RELEASENAME=${TAGNAME/_/ }
          echo "RELEASENAME=$RELEASENAME" >> $GITHUB_ENV
          cp dist/build/mv3-data/log.txt dist/mv3/
      - name: Commit uBOLite MV3 build log file
        # https://github.com/marketplace/actions/github-action-for-committing-changes-to-a-repository
        uses: devops-infra/action-commit-push@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          commit_message: Update build log file
      - name: Create GitHub release
        id: create_release
        uses: ncipollo/release-action@v1
        with:
          tag: ${{ env.TAGNAME }}
          owner: uBlockOrigin
          prerelease: true
          repo: uBOL-home
          token: ${{ secrets.PAT }}
      - name: Upload Chromium uBOLite MV3 package
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.PAT }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: dist/build/${{ env.PACKAGE }}
          asset_name: ${{ env.PACKAGE }}
          asset_content_type: application/octet-stream
      # Firefox
      - name: Build Firefox uBOLite MV3 packages
        run: |
          tools/make-mv3.sh firefox full
          echo "PACKAGE=$(basename $(ls dist/build/uBOLite_*.firefox.mv3.xpi))" >> $GITHUB_ENV
      - name: Upload Firefox uBOLite MV3 package
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.PAT }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: dist/build/${{ env.PACKAGE }}
          asset_name: ${{ env.PACKAGE }}
          asset_content_type: application/octet-stream
