name: GitHub CI on: create: branches: master 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 if: startsWith(github.ref, 'refs/tags/') steps: - name: Clone repository uses: actions/checkout@v3 with: persist-credentials: false ref: ${{ github.head_ref }} - name: Clone uAssets run: | git submodule update --depth 1 --init # https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html - name: Get release information id: release_info run: | echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} - name: Create GitHub release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ github.token }} with: tag_name: ${{ steps.release_info.outputs.VERSION }} release_name: ${{ steps.release_info.outputs.VERSION }} prerelease: true - name: Build MV2 packages run: | tools/make-chromium.sh ${{ steps.release_info.outputs.VERSION }} tools/make-firefox.sh ${{ steps.release_info.outputs.VERSION }} tools/make-thunderbird.sh ${{ steps.release_info.outputs.VERSION }} tools/make-npm.sh ${{ steps.release_info.outputs.VERSION }} - name: Build MV3 packages run: | tools/make-mv3.sh full echo "MV3PACKAGE=$(basename $(ls dist/build/uBlock0_*.mv3.zip))" >> $GITHUB_ENV cp dist/build/uBlock0.mv3/log.txt dist/chromium-mv3/ - name: Commit 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: Upload Chromium package uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.chromium.zip asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.chromium.zip asset_content_type: application/octet-stream - name: Upload Firefox package uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.firefox.xpi asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.firefox.xpi asset_content_type: application/octet-stream - name: Upload Thunderbird package uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.thunderbird.xpi asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.thunderbird.xpi asset_content_type: application/octet-stream - name: Upload NodeJS package uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/build/uBlock0_${{ steps.release_info.outputs.VERSION }}.npm.tgz asset_name: uBlock0_${{ steps.release_info.outputs.VERSION }}.npm.tgz asset_content_type: application/octet-stream - name: Upload Chromium MV3 package uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/build/${{ env.MV3PACKAGE }} asset_name: ${{ env.MV3PACKAGE }} asset_content_type: application/octet-stream