name: Build & Release env: DOCKER_BUILDKIT: 1 COMPOSE_DOCKER_CLI_BUILD: 1 HAVE_TELEGRAM_API_ID: ${{ secrets.TELEGRAM_API_ID != '' }} on: workflow_dispatch: inputs: GITHUB_UPLOAD: description: "Upload to GitHub" required: false type: boolean default: true TELEGRAM_NO_ROOT_UPLOAD: description: "Upload Non Rooted APKs to Telegram" required: false type: boolean default: false TELEGRAM_ROOT_UPLOAD: description: "Upload Magisk Module from nikhilbadyal/revanced-magisk-module to Telegram" required: false type: boolean default: false APPRISE_NOTIFY: description: "Use Apprise to Notify" required: false type: boolean default: false VIRUSTOTAL_SCAN: description: "Scan apks with VirusTotal" required: false type: boolean default: false CLEANUP: description: "Clear GitHub(Useful if Telegram upload is enabled)" required: false type: boolean default: false COMMIT_CHANGELOG: description: "Update Changelog" type: boolean required: false default: false DEBUG_ENABLED: type: boolean description: 'Run the build with tmate debugging enabled.' required: false default: false concurrency: group: ${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build-apk: uses: ./.github/workflows/build-artifact.yml with: COMMIT_CHANGELOG: ${{ inputs.COMMIT_CHANGELOG }} DEBUG_ENABLED: ${{ inputs.DEBUG_ENABLED }} secrets: ENVS: ${{ secrets.ENVS }} REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }} upload-to-github: name: GitHub Upload runs-on: ubuntu-latest timeout-minutes: 30 needs: build-apk if: inputs.GITHUB_UPLOAD steps: - name: Download Already Built APKs uses: actions/download-artifact@main with: name: Built-APKs - name: Get Date id: get-date run: | echo "date=$(TZ='Asia/Kolkata' date +"%Y.%m.%d-%H.%M.%S")" >> $GITHUB_OUTPUT curl https://github.com/nikhilbadyal/docker-py-revanced/blob/changelogs/changelog.md > changelog.md - name: Delete Older Releases uses: nikhilbadyal/ghaction-rm-releases@v0.0.5 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} RELEASE_PATTERN: "Build*" - name: Upload Build Artifact uses: ncipollo/release-action@main with: artifacts: "*-output.apk" token: ${{ secrets.GITHUB_TOKEN }} tag: Build-${{ steps.get-date.outputs.date }} artifactErrorsFailBuild: true - name: Sleep for 10 seconds run: | sleep 10 virustotal-scan: needs: [ upload-to-github ] uses: nikhilbadyal/ghactions/.github/workflows/virustotal-scan.yml@main with: FILES: | .apk$ request_rate: 4 if: inputs.VIRUSTOTAL_SCAN secrets: VT_API_KEY: ${{ secrets.VT_API_KEY }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} upload-to-telegram: needs: [ upload-to-github ] uses: nikhilbadyal/ghactions/.github/workflows/telegram-uploader.yml@main if: inputs.TELEGRAM_NO_ROOT_UPLOAD secrets: TELEGRAM_API_ID: ${{ secrets.TELEGRAM_API_ID }} TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_API_HASH }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} TELEGRAM_STICKER_ID: ${{ secrets.TELEGRAM_STICKER_ID }} MESSAGE: ${{ secrets.MESSAGE_NON_ROOT }} upload-to-telegram-root: needs: [ upload-to-telegram ] uses: nikhilbadyal/ghactions/.github/workflows/telegram-uploader.yml@main if: inputs.TELEGRAM_ROOT_UPLOAD secrets: TELEGRAM_API_ID: ${{ secrets.TELEGRAM_API_ID }} TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_API_HASH }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} DOWNLOAD_GITHUB_REPOSITORY: ${{ secrets.ROOT_DOWNLOAD_GITHUB_REPOSITORY }} MESSAGE: ${{ secrets.MESSAGE_ROOT }} apprise-notifier: needs: build-apk name: Apprise Notifier runs-on: ubuntu-latest timeout-minutes: 30 if: inputs.APPRISE_NOTIFY steps: - name: Download Already Built APKs uses: actions/download-artifact@main with: name: Built-APKs - name: Find all built apks id: ff run: | apk_list="" for filename in $(find . -name "*-output.apk" -type f); do apk_list="$apk_list,$filename" done apk_list=${apk_list:1} echo "apks=$apk_list" >> "$GITHUB_OUTPUT" is_present=$([ -n "${{ secrets.APPRISE_URL }}" ] && echo true || echo false ); echo "has_apprise_url=$is_present" >> $GITHUB_OUTPUT - name: Print files run: echo "${{ steps.ff.outputs.apks }} ${{ steps.ff.outputs.has_apprise_url }}" - name: Upload to Telegram uses: nikhilbadyal/ghaction-apprise@main with: APPRISE_URL: ${{ secrets.APPRISE_URL }} APPRISE_NOTIFICATION_BODY: ${{ secrets.APPRISE_NOTIFICATION_BODY }} APPRISE_NOTIFICATION_TITLE: ${{ secrets.APPRISE_NOTIFICATION_TITLE }} APPRISE_ATTACHMENTS: ${{ steps.ff.outputs.apks }} cleanup: name: GitHub Cleanup if: inputs.CLEANUP needs: [ upload-to-telegram ] uses: ./.github/workflows/github-cleanup.yml secrets: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}