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}"