CI: publish releases as non-draft for Obtainium and public API

Draft releases are not visible to unauthenticated API clients, so
Obtainium could not list or match a suitable version. Use draft: false
when creating or updating Forgejo releases.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
littlecodedragon 2026-05-09 20:12:02 +02:00
parent b81d3eb198
commit 940a669936

View file

@ -197,17 +197,15 @@ 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-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"
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"
if [ -d app/build/outputs/mapping/release ]; then
zip -qr "Komikku-v${version_core}-mapping.zip" app/build/outputs/mapping/release
zip -qr "Komikku-mapping-${version_tag}.zip" app/build/outputs/mapping/release
fi
- name: Sign APKs
@ -268,11 +266,18 @@ jobs:
}
# Only publish signed APK aliases.
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"
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
- name: Create or update release
id: release
@ -386,21 +391,17 @@ jobs:
fi
release_body="$(printf '%s\n' \
"## Komikku ${VERSION_DISPLAY}" \
"#### What's Changed" \
"" \
"### 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\`" \
"##### New" \
"" \
"##### Improve" \
"" \
"##### Fix" \
"" \
"### Changes" \
"${commit_logs}" \
"" \
"### Release Notes" \
"- Assets use stable names for Obtainium compatibility." \
"- Versioned files follow: \`Komikku-v<version>-<abi>.apk\`." \
"##### Based on" \
"" \
"${fork_delta_label}" \
"" \
@ -415,7 +416,7 @@ jobs:
--arg tag "${VERSION_TAG}" \
--arg title "Komikku ${VERSION_DISPLAY}" \
--arg body "${release_body}" \
'{tag_name: $tag, name: $title, body: $body, draft: true, prerelease: false}' > "${payload_file}"
'{tag_name: $tag, name: $title, body: $body, draft: false, prerelease: false}' > "${payload_file}"
status="$(curl "${curl_tls_args[@]}" -sS -o "$response_file" -w '%{http_code}' \
-H "Authorization: token ${FORGEJO_TOKEN}" \