From afa596cb7691aeb8be9700fe6a0443999aaaee62 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:05:27 +0800 Subject: [PATCH 01/14] ci: adjust APK output naming Modify APK output file name based on commit SHA and build type. --- app/build.gradle.kts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c4e0e919..b9ccb062 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,7 +29,11 @@ android { applicationVariants.configureEach { outputs.configureEach { if (this is BaseVariantOutputImpl) { - outputFileName = "LogFox-${versionName}-${name}.apk" + val shortCommit = providers.environmentVariable("GIT_SHA").orNull ?: "local" + val releaseBuild = providers.environmentVariable("RELEASE_BUILD").orNull ?: "false" + + outputFileName = if (releaseBuild == "true") "LogFox-v${versionName}-release.apk" + else "LogFox-v${versionName}-${shortCommit}-release.apk" } } } From 925e16f03bf78e9d10db4b0e5f1b2afa6647e3f4 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:10:14 +0800 Subject: [PATCH 02/14] ci: adjust APK output naming --- .github/workflows/build_apk_job.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_apk_job.yml b/.github/workflows/build_apk_job.yml index c0861cb0..4525e68e 100644 --- a/.github/workflows/build_apk_job.yml +++ b/.github/workflows/build_apk_job.yml @@ -50,7 +50,7 @@ jobs: path: app/keystore - name: Build APK - run: bash ./gradlew :app:assembleRelease --stacktrace --no-daemon + run: bash ./gradlew :app:assembleRelease -PGIT_SHA=${GITHUB_SHA::7} -PRELEASE_BUILD=true --stacktrace --no-daemon - name: Upload APK uses: actions/upload-artifact@v4 From b370157f249ae800f7f215703009b6014f77f929 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:14:12 +0800 Subject: [PATCH 03/14] ci: adjust APK output naming --- .github/workflows/build_release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index f164435d..b56440e4 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -34,6 +34,8 @@ jobs: with: version_name: ${{ needs.extract_version.outputs.version_name }} version_code: ${{ needs.extract_version.outputs.version_code }} + release_build: true + git_sha: ${{ github.sha }} secrets: inherit release: From a371ef043b0e8c5195e84da1ab230bc1b69a39fa Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 15:16:18 +0800 Subject: [PATCH 04/14] ci: adjust APK output naming --- .github/workflows/build_staging.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build_staging.yml b/.github/workflows/build_staging.yml index efbaa598..796d9c4f 100644 --- a/.github/workflows/build_staging.yml +++ b/.github/workflows/build_staging.yml @@ -39,6 +39,8 @@ jobs: checkout_keystore: ${{ github.event.pull_request.user.login == github.repository_owner }} version_name: ${{ needs.extract_version.outputs.version_name }} version_code: ${{ needs.extract_version.outputs.version_code }} + release_build: false + git_sha: ${{ github.sha }} secrets: inherit send: From fb1202e88e8641da7371203f52391c6563438837 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:04:27 +0800 Subject: [PATCH 05/14] ci: adjust APK output naming --- .github/workflows/build_apk_job.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_apk_job.yml b/.github/workflows/build_apk_job.yml index 4525e68e..df00d9a6 100644 --- a/.github/workflows/build_apk_job.yml +++ b/.github/workflows/build_apk_job.yml @@ -18,6 +18,16 @@ on: required: false type: string default: '' + release_build: + description: 'Whether this is a release build' + required: false + type: boolean + default: false + git_sha: + description: 'Git short SHA for APK filename' + required: false + type: string + default: '' env: KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }} @@ -50,7 +60,7 @@ jobs: path: app/keystore - name: Build APK - run: bash ./gradlew :app:assembleRelease -PGIT_SHA=${GITHUB_SHA::7} -PRELEASE_BUILD=true --stacktrace --no-daemon + run: bash ./gradlew :app:assembleRelease -PGIT_SHA=${{ inputs.git_sha }} -PRELEASE_BUILD=${{ inputs.release_build }} --stacktrace --no-daemon - name: Upload APK uses: actions/upload-artifact@v4 From 24b3c1e20eab18918fecfd1716470290225ff5e4 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 22:43:51 +0800 Subject: [PATCH 06/14] ci: improve tag version extraction in build workflow Update version extraction logic to handle missing tags. --- .github/workflows/build_staging.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_staging.yml b/.github/workflows/build_staging.yml index 796d9c4f..2e71f10f 100644 --- a/.github/workflows/build_staging.yml +++ b/.github/workflows/build_staging.yml @@ -22,13 +22,19 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + tags: true - name: Extract version from latest tag id: extract run: | - LATEST_TAG=$(git describe --tags --abbrev=0) - VERSION_CODE="${LATEST_TAG##*-}" - VERSION_NAME="${GITHUB_SHA::7}" + LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + if [ -z "$LATEST_TAG" ]; then + VERSION_NAME="${GITHUB_SHA::7}" + VERSION_CODE="0" + else + VERSION_NAME="${LATEST_TAG%-*}" + VERSION_CODE="${LATEST_TAG##*-}" + fi echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT From 79d4400eca7c4661ad213afa6f6d9eea59cd76f5 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Fri, 30 Jan 2026 23:23:38 +0800 Subject: [PATCH 07/14] =?UTF-8?q?ci=EF=BC=9AUpdate=20GitHub=20Actions=20wo?= =?UTF-8?q?rkflow=20for=20tag=20fetching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build_staging.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_staging.yml b/.github/workflows/build_staging.yml index 2e71f10f..4334b037 100644 --- a/.github/workflows/build_staging.yml +++ b/.github/workflows/build_staging.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - tags: true + fetch-tags: true - name: Extract version from latest tag id: extract @@ -32,11 +32,13 @@ jobs: VERSION_NAME="${GITHUB_SHA::7}" VERSION_CODE="0" else - VERSION_NAME="${LATEST_TAG%-*}" + VERSION_NAME="${LATEST_TAG#v}" VERSION_CODE="${LATEST_TAG##*-}" fi + SHORT_SHA="${GITHUB_SHA::7}" echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT + echo "short_commit=$SHORT_SHA" >> $GITHUB_OUTPUT build: needs: extract_version From 21306c7f0d0ff987e733b1622e8c07f8b9f300c1 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 08:28:38 +0800 Subject: [PATCH 08/14] fix: correct versionCode fallback and commit retrieval in build.gradle.kts --- app/build.gradle.kts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b9ccb062..b7228ff1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,7 @@ android { versionCode = providers .environmentVariable("VERSION_CODE") .orNull - ?.toIntOrNull() - ?: Int.MAX_VALUE + ?.toIntOrNull() ?: 1 versionName = providers .environmentVariable("VERSION_NAME") .getOrElse("unknown") @@ -29,8 +28,13 @@ android { applicationVariants.configureEach { outputs.configureEach { if (this is BaseVariantOutputImpl) { - val shortCommit = providers.environmentVariable("GIT_SHA").orNull ?: "local" - val releaseBuild = providers.environmentVariable("RELEASE_BUILD").orNull ?: "false" + val shortCommit = providers.gradleProperty("GIT_SHA") + .orElse(providers.environmentVariable("GIT_SHA")) + .orNull ?: "local" + + val releaseBuild = providers.gradleProperty("RELEASE_BUILD") + .orElse(providers.environmentVariable("RELEASE_BUILD")) + .orNull ?: "false" outputFileName = if (releaseBuild == "true") "LogFox-v${versionName}-release.apk" else "LogFox-v${versionName}-${shortCommit}-release.apk" From 008bf27344ef827cf471704ecbdbf3b9d94dcb3c Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 08:35:41 +0800 Subject: [PATCH 09/14] fix: update version extraction logic in build_staging.yml --- .github/workflows/build_staging.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_staging.yml b/.github/workflows/build_staging.yml index 4334b037..7a2647c2 100644 --- a/.github/workflows/build_staging.yml +++ b/.github/workflows/build_staging.yml @@ -28,17 +28,19 @@ jobs: id: extract run: | LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + SHORT_SHA="${GITHUB_SHA::7}" + if [ -z "$LATEST_TAG" ]; then - VERSION_NAME="${GITHUB_SHA::7}" - VERSION_CODE="0" + VERSION_NAME="0.0.0-${SHORT_SHA}" + VERSION_CODE="1" else - VERSION_NAME="${LATEST_TAG#v}" + BASE_VERSION="${LATEST_TAG#v}" + BASE_VERSION="${BASE_VERSION%-*}" + VERSION_NAME="${BASE_VERSION}-${SHORT_SHA}" VERSION_CODE="${LATEST_TAG##*-}" fi - SHORT_SHA="${GITHUB_SHA::7}" echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT - echo "short_commit=$SHORT_SHA" >> $GITHUB_OUTPUT build: needs: extract_version From 210c37e4d488ce1762d1d4a5f41377cd4a1a2690 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 08:40:04 +0800 Subject: [PATCH 10/14] fix: Fix version extraction logic in build_release.yml --- .github/workflows/build_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index b56440e4..27bdc6e0 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -22,8 +22,8 @@ jobs: id: extract run: | TAG="${GITHUB_REF_NAME}" - # Tag format: v2.2.0-70 - VERSION_NAME="${TAG%-*}" + VERSION_NAME="${TAG#v}" + VERSION_NAME="${VERSION_NAME%-*}" VERSION_CODE="${TAG##*-}" echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT From dd9b80b9e4d3255bdb27fd7b91eb72d78594e651 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 09:11:14 +0800 Subject: [PATCH 11/14] fix:Limit GIT_SHA length to 7 characters --- app/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b7228ff1..d7bdd43e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -30,7 +30,8 @@ android { if (this is BaseVariantOutputImpl) { val shortCommit = providers.gradleProperty("GIT_SHA") .orElse(providers.environmentVariable("GIT_SHA")) - .orNull ?: "local" + .orNull + ?.take(7) ?: "local" val releaseBuild = providers.gradleProperty("RELEASE_BUILD") .orElse(providers.environmentVariable("RELEASE_BUILD")) From 3672334a9c7ec2708cdef226dcb7811985ba9f66 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 09:21:16 +0800 Subject: [PATCH 12/14] fix:Add short_commit output to build_staging workflow --- .github/workflows/build_staging.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_staging.yml b/.github/workflows/build_staging.yml index 7a2647c2..fef1069e 100644 --- a/.github/workflows/build_staging.yml +++ b/.github/workflows/build_staging.yml @@ -17,6 +17,7 @@ jobs: outputs: version_name: ${{ steps.extract.outputs.version_name }} version_code: ${{ steps.extract.outputs.version_code }} + short_commit: ${{ steps.extract.outputs.short_commit }} steps: - name: Checkout uses: actions/checkout@v4 @@ -41,6 +42,7 @@ jobs: fi echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT + echo "short_commit=$SHORT_SHA" >> $GITHUB_OUTPUT build: needs: extract_version @@ -50,7 +52,7 @@ jobs: version_name: ${{ needs.extract_version.outputs.version_name }} version_code: ${{ needs.extract_version.outputs.version_code }} release_build: false - git_sha: ${{ github.sha }} + git_sha: ${{ needs.extract_version.outputs.short_commit }} secrets: inherit send: From ca0a0ce7a6ddbaa358dbce89c8ebe1e43cf4d7b2 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 09:41:27 +0800 Subject: [PATCH 13/14] fix: remove git_sha from GitHub release workflow Removed git_sha parameter from release step. --- .github/workflows/build_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 27bdc6e0..c26e1e31 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -35,7 +35,6 @@ jobs: version_name: ${{ needs.extract_version.outputs.version_name }} version_code: ${{ needs.extract_version.outputs.version_code }} release_build: true - git_sha: ${{ github.sha }} secrets: inherit release: From 15b150968f82bf819e3744cd2a504e803742d7a4 Mon Sep 17 00:00:00 2001 From: Chumor <185651145+Chumor@users.noreply.github.com> Date: Sat, 31 Jan 2026 10:16:02 +0800 Subject: [PATCH 14/14] fix:Refactor outputFileName logic in build.gradle.kts --- app/build.gradle.kts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d7bdd43e..3fa311da 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -37,8 +37,10 @@ android { .orElse(providers.environmentVariable("RELEASE_BUILD")) .orNull ?: "false" - outputFileName = if (releaseBuild == "true") "LogFox-v${versionName}-release.apk" - else "LogFox-v${versionName}-${shortCommit}-release.apk" + outputFileName = if (releaseBuild == "true" || versionName.contains(shortCommit)) + "LogFox-v${versionName}-release.apk" + else + "LogFox-v${versionName}-${shortCommit}-release.apk" } } }