From 618388a7191175b2f3d8f876cfbc28bfbc968dd5 Mon Sep 17 00:00:00 2001 From: Danil Nikolaev Date: Fri, 16 May 2025 05:09:04 +0300 Subject: [PATCH] update workflow to upload apks with build time in name --- .github/workflows/build.yml | 26 ++++++++++++++++++++------ app/build.gradle.kts | 13 +++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac54524f..e51a47fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,17 +32,31 @@ jobs: - name: Build and sign release APK run: ./gradlew assembleRelease - - name: Upload release APK + - name: Find generated release APK name + id: find_apk + run: | + APK_PATH=$(find app/build/outputs/apk/release -name "*.apk" | head -n 1) + echo "APK_PATH=$APK_PATH" >> $GITHUB_ENV + echo "APK_NAME=$(basename $APK_PATH)" >> $GITHUB_ENV + + - name: Upload APK with original name uses: actions/upload-artifact@v4 with: - name: app-release.apk - path: app/build/outputs/apk/release/app-release.apk + name: ${{ env.APK_NAME }} + path: ${{ env.APK_PATH }} - name: Build and sign debug APK run: ./gradlew assembleDebug - - name: Upload debug APK + - name: Find generated debug APK name + id: find_apk + run: | + APK_PATH=$(find app/build/outputs/apk/debug -name "*.apk" | head -n 1) + echo "APK_PATH=$APK_PATH" >> $GITHUB_ENV + echo "APK_NAME=$(basename $APK_PATH)" >> $GITHUB_ENV + + - name: Upload APK with original name uses: actions/upload-artifact@v4 with: - name: app-debug.apk - path: app/build/outputs/apk/debug/app-debug.apk + name: ${{ env.APK_NAME }} + path: ${{ env.APK_PATH }} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4f27a3fe..72ffe0c6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,3 +1,4 @@ +import com.android.build.gradle.internal.api.BaseVariantOutputImpl import java.util.Properties plugins { @@ -58,6 +59,18 @@ android { } } + applicationVariants.all { + outputs.all { + val date = System.currentTimeMillis() / 1000 + val buildType = buildType.name + val appVersion = versionName + val appVersionCode = versionCode + + val newApkName = "app-$buildType-v$appVersion($appVersionCode)-$date.apk" + (this as? BaseVariantOutputImpl)?.outputFileName = newApkName + } + } + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}"