diff --git a/.forgejo/workflows/build_release.yml b/.forgejo/workflows/build_release.yml index 56335962f..239d0e4d8 100755 --- a/.forgejo/workflows/build_release.yml +++ b/.forgejo/workflows/build_release.yml @@ -177,15 +177,17 @@ jobs: set -euo pipefail version_tag="${{ steps.prepare.outputs.VERSION_TAG }}" + # Strip CI/build metadata suffixes (e.g. -forgejo.29) for stable asset names. + version_core="$(printf '%s' "$version_tag" | sed -E 's/^v//' | sed -E 's/-forgejo\.[0-9]+$//')" - mv app/build/outputs/apk/release/app-universal-release-unsigned.apk "Komikku-${version_tag}-unsigned.apk" - mv app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk "Komikku-arm64-v8a-${version_tag}-unsigned.apk" - mv app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk "Komikku-armeabi-v7a-${version_tag}-unsigned.apk" - mv app/build/outputs/apk/release/app-x86-release-unsigned.apk "Komikku-x86-${version_tag}-unsigned.apk" - mv app/build/outputs/apk/release/app-x86_64-release-unsigned.apk "Komikku-x86_64-${version_tag}-unsigned.apk" + mv app/build/outputs/apk/release/app-universal-release-unsigned.apk "Komikku-v${version_core}-universal-unsigned.apk" + mv app/build/outputs/apk/release/app-arm64-v8a-release-unsigned.apk "Komikku-v${version_core}-arm64-v8a-unsigned.apk" + mv app/build/outputs/apk/release/app-armeabi-v7a-release-unsigned.apk "Komikku-v${version_core}-armeabi-v7a-unsigned.apk" + mv app/build/outputs/apk/release/app-x86-release-unsigned.apk "Komikku-v${version_core}-x86-unsigned.apk" + mv app/build/outputs/apk/release/app-x86_64-release-unsigned.apk "Komikku-v${version_core}-x86_64-unsigned.apk" if [ -d app/build/outputs/mapping/release ]; then - zip -qr "Komikku-mapping-${version_tag}.zip" app/build/outputs/mapping/release + zip -qr "Komikku-v${version_core}-mapping.zip" app/build/outputs/mapping/release fi - name: Sign APKs @@ -246,18 +248,11 @@ jobs: } # Only publish signed APK aliases. - alias_asset "$(ls -1t Komikku-arm64-v8a-*.apk 2>/dev/null | head -n1)" "Komikku-arm64-v8a.apk" - - for candidate in Komikku-*.apk; do - case "$candidate" in - *arm64-v8a*|*armeabi-v7a*|*x86_64*|*x86*|*-unsigned.apk) - ;; - *) - alias_asset "$candidate" "Komikku-universal.apk" - break - ;; - esac - done + alias_asset "$(ls -1t Komikku-v*-arm64-v8a.apk 2>/dev/null | head -n1)" "Komikku-arm64-v8a.apk" + alias_asset "$(ls -1t Komikku-v*-armeabi-v7a.apk 2>/dev/null | head -n1)" "Komikku-armeabi-v7a.apk" + alias_asset "$(ls -1t Komikku-v*-x86.apk 2>/dev/null | head -n1)" "Komikku-x86.apk" + alias_asset "$(ls -1t Komikku-v*-x86_64.apk 2>/dev/null | head -n1)" "Komikku-x86_64.apk" + alias_asset "$(ls -1t Komikku-v*-universal.apk 2>/dev/null | head -n1)" "Komikku-universal.apk" - name: Create or update release id: release @@ -364,24 +359,23 @@ jobs: fi release_body="$(printf '%s\n' \ - "#### What's Changed" \ + "## Komikku ${VERSION_DISPLAY}" \ "" \ - "##### New" \ - "" \ - "##### Improve" \ - "" \ - "##### Fix" \ + "### Download Guide" \ + "- **Most users:** \`Komikku-universal.apk\`" \ + "- **arm64 devices:** \`Komikku-arm64-v8a.apk\`" \ + "- **armeabi-v7a devices:** \`Komikku-armeabi-v7a.apk\`" \ + "- **x86 devices:** \`Komikku-x86.apk\`" \ + "- **x86_64 devices:** \`Komikku-x86_64.apk\`" \ "" \ + "### Changes" \ "${commit_logs}" \ "" \ - "##### Based on" \ + "### Release Notes" \ + "- Assets use stable names for Obtainium compatibility." \ + "- Versioned files follow: \`Komikku-v-.apk\`." \ "" \ - "${full_changelog}" \ - "" \ - "" \ - "> [!TIP]" \ - ">" \ - "> ### If you are unsure which version to download then go with \`Komikku-universal.apk\`")" + "${full_changelog}")" "${JQ_BIN}" -n \ --arg tag "${VERSION_TAG}" \