From ba1f90cba8a633c7aed83529406a6aa0c71a8cc6 Mon Sep 17 00:00:00 2001 From: 5ec1cff Date: Mon, 11 Dec 2023 15:31:48 +0800 Subject: [PATCH] Upload CI builds to telegram --- .github/scripts/telegram_url.py | 22 ++++++++++++++++++++++ .github/workflows/ci.yml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 .github/scripts/telegram_url.py diff --git a/.github/scripts/telegram_url.py b/.github/scripts/telegram_url.py new file mode 100644 index 0000000..6e18494 --- /dev/null +++ b/.github/scripts/telegram_url.py @@ -0,0 +1,22 @@ +import json +import os +import urllib.parse + +url = f'https://api.telegram.org/bot{os.environ["BOT_TOKEN"]}' +url += f'/sendMediaGroup?chat_id={urllib.parse.quote(os.environ["CHANNEL_ID"])}&media=' + +msg = os.environ["COMMIT_MESSAGE"] +commit_url = os.environ["COMMIT_URL"] +commit_id = os.environ["COMMIT_ID"][:7] + +caption = f"[{commit_id}]({commit_url})\n{msg}"[:1024] + +data = json.dumps([ + {"type": "document", "media": "attach://Release"}, + {"type": "document", "media":"attach://Debug"}, + {"type": "document", "media": "attach://ReleaseSymbol"}, + {"type": "document", "media": "attach://DebugSymbol","caption": caption,"parse_mode":"MarkdownV2"} + ]) + +url += urllib.parse.quote(data) +print(url) \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f74f89..4ef6a1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,11 @@ name: CI on: workflow_dispatch: + inputs: + post_telegram: + description: 'Post to Telegram' + required: true + type: boolean push: branches: [ master ] tags: [ v* ] @@ -75,6 +80,12 @@ jobs: debugName=`ls module/build/outputs/release/Zygisk-Next-v*-debug.zip | awk -F '(/|.zip)' '{print $5}'` && echo "debugName=$debugName" >> $GITHUB_OUTPUT unzip module/build/outputs/release/Zygisk-Next-v*-release.zip -d zksu-release unzip module/build/outputs/release/Zygisk-Next-v*-debug.zip -d zksu-debug + releaseSymbolName="$releaseName-symbols.zip" + debugSymbolName="$debugName-symbols.zip" + echo "releaseSymbolName=$releaseSymbolName" >> $GITHUB_OUTPUT + echo "debugSymbolName=$debugSymbolName" >> $GITHUB_OUTPUT + zip -r $releaseSymbolName zygiskd/build/symbols/release + zip -r $debugSymbolName zygiskd/build/symbols/debug - name: Upload release uses: actions/upload-artifact@v3 @@ -99,3 +110,22 @@ jobs: with: name: ${{ steps.prepareArtifact.outputs.debugName }}-symbols path: "zygiskd/build/symbols/debug" + + - name: Post to channel + if: ${{ success() && github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.ref_type != 'tag' && inputs.post_telegram != 'false' }} + env: + CHANNEL_ID: ${{ secrets.CHANNEL_ID }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + COMMIT_URL: ${{ github.event.head_commit.url }} + COMMIT_ID: ${{ github.event.head_commit.id }} + run: | + if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then + OUTPUT="module/build/outputs/release" + export Release=$(find $OUTPUT -name "Zygisk-Next-v*-release.zip") + export Debug=$(find $OUTPUT -name "Zygisk-Next-v*-debug.zip") + export ReleaseSymbol="${{ steps.prepareArtifact.outputs.releaseSymbolName }}" + export DebugSymbol="${{ steps.prepareArtifact.outputs.debugSymbolName }}" + URL=$(python3 .github/scripts/telegram_url.py) + curl -v "$URL" -F Release="@$Release" -F Debug="@$Debug" -F ReleaseSymbol="@$ReleaseSymbol" -F DebugSymbol="@$DebugSymbol" + fi