From bcac9a3752a286b1c05424684d99db004ebea108 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Mon, 18 Sep 2023 00:11:07 +0800 Subject: [PATCH] ci: optimize and add artifacts post to Telegram --- .github/workflows/commit_ci.yml | 47 ++++++++++++++++++++------- .github/workflows/pull_request_ci.yml | 32 +++++++++++------- 2 files changed, 56 insertions(+), 23 deletions(-) diff --git a/.github/workflows/commit_ci.yml b/.github/workflows/commit_ci.yml index b099a0f..a5b642e 100644 --- a/.github/workflows/commit_ci.yml +++ b/.github/workflows/commit_ci.yml @@ -13,17 +13,34 @@ on: jobs: build: name: Build CI + if: ${{ success() }} runs-on: ubuntu-latest + env: + APK_OUTPUT_PATH: 'app/build/outputs/apk' + TG_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} + TG_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} + COMMIT_MESSAGE: |+ + New push to GitHub\! + ``` + ${{ github.event.head_commit.message }} + ```by `${{ github.event.head_commit.author.name }}` + See commit detail [here](${{ github.event.head_commit.url }}) + COMMIT_URL: ${{ github.event.head_commit.url }} steps: - uses: actions/checkout@v3 + - name: Prepare GitHub Env + run: | + GITHUB_SHA=${{ github.sha }} + GITHUB_CI_COMMIT_ID=${GITHUB_SHA:0:7} + echo "GITHUB_CI_COMMIT_ID=$GITHUB_CI_COMMIT_ID" >> $GITHUB_ENV - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1 with: cmake-version: '3.22.1' - - name: Prepare Java 11 + - name: Prepare Java 17 uses: actions/setup-java@v3 with: - java-version: 11 + java-version: 17 java-package: jdk distribution: 'temurin' cache: 'gradle' @@ -34,7 +51,7 @@ jobs: ~/.gradle/caches ~/.gradle/wrapper !~/.gradle/caches/build-cache-* - key: gradle-deps-core-${{ hashFiles('**/build.gradle') }} + key: gradle-deps-core-${{ hashFiles('**/build.gradle.kts') }} restore-keys: | gradle-deps - name: Cache Gradle Build @@ -49,15 +66,23 @@ jobs: run: | ./gradlew :app:assembleDebug ./gradlew :app:assembleRelease - echo "DEBUG_APK_FILE=$(find app/build/outputs/apk/debug -name '*.apk')" >> $GITHUB_ENV - echo "RELEASE_APK_FILE=$(find app/build/outputs/apk/release -name '*.apk')" >> $GITHUB_ENV - - name: Upload Artifacts(debug) + echo "DEBUG_APK_PATH=$(find ${{ env.APK_OUTPUT_PATH }}/debug -name '*.apk')" >> $GITHUB_ENV + echo "RELEASE_APK_PATH=$(find ${{ env.APK_OUTPUT_PATH }}/release -name '*.apk')" >> $GITHUB_ENV + - name: Upload Artifacts (Debug) uses: actions/upload-artifact@v3 with: - path: ${{ env.DEBUG_APK_FILE }} - name: app-debug - - name: Upload Artifacts(release) + path: ${{ env.DEBUG_APK_PATH }} + name: TSBattery-debug-${{ github.event.head_commit.id }} + - name: Upload Artifacts (Release) uses: actions/upload-artifact@v3 with: - path: ${{ env.RELEASE_APK_FILE }} - name: app-release + path: ${{ env.RELEASE_APK_PATH }} + name: TSBattery-release-${{ github.event.head_commit.id }} + - name: Post Artifacts to Telegram + run: | + export debug=$(find ${{ env.APK_OUTPUT_PATH }}/debug -name "*.apk") + export release=$(find ${{ env.APK_OUTPUT_PATH }}/release -name "*.apk") + ESCAPED=`python3 -c 'import json,os,urllib.parse; msg = json.dumps(os.environ["COMMIT_MESSAGE"]); print(urllib.parse.quote(msg if len(msg) <= 1024 else json.dumps(os.environ["COMMIT_URL"])))'` + curl -v "https://api.telegram.org/bot${TG_BOT_TOKEN}/sendMediaGroup?chat_id=${TG_CHAT_ID}&media=%5B%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Fdebug%22%7D%2C%7B%22type%22%3A%22document%22%2C%20%22media%22%3A%22attach%3A%2F%2Frelease%22%2C%22parse_mode%22%3A%22MarkdownV2%22%2C%22caption%22:${ESCAPED}%7D%5D" \ + -F debug="@$debug" \ + -F release="@$release" \ No newline at end of file diff --git a/.github/workflows/pull_request_ci.yml b/.github/workflows/pull_request_ci.yml index 5675b37..4fe1f6c 100644 --- a/.github/workflows/pull_request_ci.yml +++ b/.github/workflows/pull_request_ci.yml @@ -11,18 +11,26 @@ on: jobs: build: - name: Pull request check + name: Pull Request Check + if: ${{ success() }} runs-on: ubuntu-latest + env: + APK_OUTPUT_PATH: 'app/build/outputs/apk' steps: - uses: actions/checkout@v3 + - name: Prepare GitHub Env + run: | + GITHUB_SHA=${{ github.sha }} + GITHUB_CI_COMMIT_ID=${GITHUB_SHA:0:7} + echo "GITHUB_CI_COMMIT_ID=$GITHUB_CI_COMMIT_ID" >> $GITHUB_ENV - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1 with: cmake-version: '3.22.1' - - name: Prepare Java 11 + - name: Prepare Java 17 uses: actions/setup-java@v3 with: - java-version: 11 + java-version: 17 java-package: jdk distribution: 'temurin' cache: 'gradle' @@ -33,7 +41,7 @@ jobs: ~/.gradle/caches ~/.gradle/wrapper !~/.gradle/caches/build-cache-* - key: gradle-deps-core-${{ hashFiles('**/build.gradle') }} + key: gradle-deps-core-${{ hashFiles('**/build.gradle.kts') }} restore-keys: | gradle-deps - name: Cache Gradle Build @@ -48,15 +56,15 @@ jobs: run: | ./gradlew :app:assembleDebug ./gradlew :app:assembleRelease - echo "DEBUG_APK_FILE=$(find app/build/outputs/apk/debug -name '*.apk')" >> $GITHUB_ENV - echo "RELEASE_APK_FILE=$(find app/build/outputs/apk/release -name '*.apk')" >> $GITHUB_ENV - - name: Upload Artifacts(debug) + echo "DEBUG_APK_PATH=$(find ${{ env.APK_OUTPUT_PATH }}/debug -name '*.apk')" >> $GITHUB_ENV + echo "RELEASE_APK_PATH=$(find ${{ env.APK_OUTPUT_PATH }}/release -name '*.apk')" >> $GITHUB_ENV + - name: Upload Artifacts (Debug) uses: actions/upload-artifact@v3 with: - path: ${{ env.DEBUG_APK_FILE }} - name: app-debug - - name: Upload Artifacts(release) + path: ${{ env.DEBUG_APK_PATH }} + name: TSBattery-debug-${{ github.event.head_commit.id }} + - name: Upload Artifacts (Release) uses: actions/upload-artifact@v3 with: - path: ${{ env.RELEASE_APK_FILE }} - name: app-release + path: ${{ env.RELEASE_APK_PATH }} + name: TSBattery-release-${{ github.event.head_commit.id }} \ No newline at end of file