Build & Release #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build & Release | |
env: | |
DOCKER_BUILDKIT: 1 | |
COMPOSE_DOCKER_CLI_BUILD: 1 | |
HAVE_TELEGRAM_API_ID: ${{ secrets.TELEGRAM_API_ID != '' }} | |
on: | |
workflow_call: | |
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: true | |
DEBUG_ENABLED: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled.' | |
required: false | |
default: false | |
PREFERRED_PATCH_APPS: | |
description: "Apps to be patched. Overrides any env set" | |
required: false | |
type: string | |
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: true | |
DEBUG_ENABLED: | |
type: boolean | |
description: 'Run the build with tmate debugging enabled.' | |
required: false | |
default: false | |
PREFERRED_PATCH_APPS: | |
description: "Apps to be patched. Overrides any env set" | |
required: false | |
type: string | |
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 }} | |
PREFERRED_PATCH_APPS: ${{ inputs.PREFERRED_PATCH_APPS }} | |
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/[email protected] | |
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 }} |