Commit graph

50 commits

Author SHA1 Message Date
littlecodedragon
9ce3f0ba29 ci(forgejo): group release notes by prefix and fork vs merges
Bucket commits into New/Fix/Improve/Other from conventional-style
subjects. When upstream main is available, split direct fork commits
from merge commits under separate headings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 22:17:56 +02:00
littlecodedragon
7fab10c8ef CI: build release JSON with jq --rawfile (avoid ARG_MAX on large bodies
All checks were successful
Forgejo Release Builder / release (push) Successful in 3m30s
Huge changelog strings passed as jq --arg exceeded Linux exec argument limit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 21:28:58 +02:00
littlecodedragon
e89f342881 CI: fix release step env — multiline COMMIT_LOGS broke act_runner
Some checks failed
Forgejo Release Builder / release (push) Failing after 3m41s
Pass commit messages via tmp file + COMMIT_LOG_FILE in GITHUB_ENV instead
of injecting COMMIT_LOGS into step env (Forgejo runner could fail before
bash ran, producing no logs).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 21:09:30 +02:00
littlecodedragon
7bca00964e CI: persistent Gradle cache, safer release API logs, faster SDK step
Some checks failed
Forgejo Release Builder / release (push) Failing after 16m20s
- Use $HOME/.cache/komikku-ci-gradle (override KOMIKKU_GRADLE_CACHE on runner)
  instead of per-job .gradle-ci under the checkout so dependencies survive runs.
- Skip sdkmanager when build-tools 35.0.0 already installed.
- Enable kotlin.incremental for assembleRelease to shorten Kotlin compile.
- Replace curl -f release/asset calls with explicit HTTP status checks and
  always print JSON error bodies on failure (Forgejo UI often hid stderr).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:32:26 +02:00
littlecodedragon
06bc3a6a0c Fix: restore build_release.yml asset naming after draft toggle
Accidentally reverted version_core naming and release notes when switching
draft to false. Restore stable Komikku-v<semver>-<abi> artifacts and
alias logic; keep draft: false for Obtainium/public API visibility.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:12:27 +02:00
littlecodedragon
940a669936 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>
2026-05-09 20:12:02 +02:00
littlecodedragon
b81d3eb198 CI: resolve merge conflict markers in build_release.yml
Some checks failed
Forgejo Release Builder / release (push) Failing after 17m24s
Invalid YAML from leftover <<<<<<< / ======= / >>>>>>> markers broke
Forgejo Actions parsing. Keep fork delta, full changelog link, and tip block.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 20:05:53 +02:00
littlecodedragon
384aee7372 Release: use fork update source and upstream-based changelog delta
Point in-app release checks/changelog links to the Forgejo fork and generate release notes against upstream komikku-app baseline commits for clearer fork-specific change visibility.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 18:29:15 +02:00
littlecodedragon
de5e0a32d3 Improve release asset naming and notes for Obtainium.
Normalize APK filenames to stable ABI/version patterns and add clearer release notes with a download guide so clients like Obtainium can reliably match assets.
2026-05-09 12:40:01 +02:00
littlecodedragon
a2f9003008 CI: publish only signed release APKs
All checks were successful
Forgejo Release Builder / release (push) Successful in 17m24s
Prevent unsigned artifacts from being published as Obtainium aliases and fail fast when signing secrets are missing so releases remain installable.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-09 07:55:21 +02:00
littlecodedragon
7e3738551b CI: allow insecure curl for self-signed Forgejo API
All checks were successful
Forgejo Release Builder / release (push) Successful in 15m48s
2026-05-08 08:34:29 +02:00
littlecodedragon
0d6a348578 CI: ensure curl is available in Forgejo release steps
Some checks failed
Forgejo Release Builder / release (push) Failing after 16m51s
2026-05-08 07:11:00 +02:00
littlecodedragon
52036476a2 CI: use jq for Forgejo release API (no python3)
Some checks failed
Forgejo Release Builder / release (push) Failing after 17m13s
2026-05-08 01:46:24 +02:00
littlecodedragon
4b1b0e8cc4 CI: raise Gradle heap to avoid GC thrashing on app compile
Some checks failed
Forgejo Release Builder / release (push) Failing after 17m16s
2026-05-08 00:28:19 +02:00
littlecodedragon
e301ee2574 CI: export JAVA_HOME and persist sdk.dir for build step
Some checks failed
Forgejo Release Builder / release (push) Failing after 8m17s
2026-05-07 06:13:47 +02:00
littlecodedragon
fe3e366181 CI: raise JVM memory for resource merge OOM
Some checks failed
Forgejo Release Builder / release (push) Failing after 8m28s
2026-05-07 05:56:14 +02:00
littlecodedragon
1a410d44c8 CI: avoid pipefail false failure in sdkmanager pipe
Some checks failed
Forgejo Release Builder / release (push) Failing after 7m57s
2026-05-07 05:16:47 +02:00
littlecodedragon
8aac90d32a CI: ensure build-tools 35 and verify aidl before build
Some checks failed
Forgejo Release Builder / release (push) Failing after -22s
2026-05-07 05:15:06 +02:00
littlecodedragon
510fcf1811 ci: autodetect Android SDK path on desktop runner
Some checks failed
Forgejo Release Builder / release (push) Failing after 8m12s
2026-05-07 00:25:47 +02:00
littlecodedragon
2cf613d19f ci: use server URL for checkout on external runners
Some checks failed
Forgejo Release Builder / release (push) Failing after 6m9s
2026-05-07 00:16:03 +02:00
littlecodedragon
232800cab1 ci: pin release workflow to desktop runner label
Some checks failed
Forgejo Release Builder / release (push) Failing after -24s
2026-05-07 00:11:28 +02:00
littlecodedragon
780bd1bfc0 ci: rebalance JVM memory towards metaspace for buildSrc
Some checks failed
Forgejo Release Builder / release (push) Failing after 9m34s
2026-05-06 23:24:58 +02:00
littlecodedragon
320ea451ec ci: switch release workflow to ultra low-memory mode
Some checks failed
Forgejo Release Builder / release (push) Failing after 8m13s
2026-05-06 23:13:50 +02:00
littlecodedragon
3ca6462cec ci: reduce Gradle/Kotlin memory footprint for low-RAM runners
Some checks failed
Forgejo Release Builder / release (push) Failing after 9m14s
2026-05-06 23:01:24 +02:00
littlecodedragon
453f7d6681 ci: cap Kotlin daemon memory for low-RAM runners
Some checks failed
Forgejo Release Builder / release (push) Failing after 5m43s
2026-05-06 22:46:32 +02:00
littlecodedragon
bc84ffb691 ci: harden Gradle for low-memory Forgejo runners
Some checks failed
Forgejo Release Builder / release (push) Failing after 6m45s
2026-05-06 22:27:27 +02:00
littlecodedragon
72fa8ee325 ci: stabilize Forgejo Gradle build under runner memory limits
Some checks failed
Forgejo Release Builder / release (push) Failing after 7m28s
2026-05-06 22:15:30 +02:00
littlecodedragon
3b08f156d5 Add Obtainium-friendly release asset aliases.
Create stable universal and arm64 APK alias names and improve release display version so repo URL import works more reliably in Obtainium.
2026-04-27 21:08:47 +02:00
littlecodedragon
f37086978d Add optional APK signing via Forgejo secrets.
All checks were successful
Forgejo Release Builder / release (push) Successful in 22m39s
Decode keystore from secrets, sign unsigned APK artifacts with apksigner when configured, and prefer uploading signed APKs.
2026-04-27 19:11:42 +02:00
littlecodedragon
55d7525d26 Handle missing mapping output in no-shrink Forgejo builds.
All checks were successful
Forgejo Release Builder / release (push) Successful in 20m37s
Only create mapping zip when the mapping directory exists to avoid zip failures when code shrinking is disabled.
2026-04-27 18:43:47 +02:00
littlecodedragon
ab252123ae Disable code shrinking for local Forgejo release CI builds.
Some checks failed
Forgejo Release Builder / release (push) Failing after 21m34s
Use -Pdisable-code-shrink to bypass R8/proguard in local fork CI where minification currently crashes the daemon.
2026-04-27 17:56:57 +02:00
littlecodedragon
d6be3d1351 Harden Forgejo release build against Kotlin daemon crashes.
Some checks failed
Forgejo Release Builder / release (push) Failing after 18m4s
Force in-process Kotlin compilation, disable daemon use, and reduce workers to lower memory pressure in containerized CI.
2026-04-27 17:36:06 +02:00
littlecodedragon
688b796e59 Make Forgejo release build work without Google secrets.
Some checks failed
Forgejo Release Builder / release (push) Failing after 17m39s
Remove secret JSON steps and build without telemetry so local fork release CI can run without cloud credentials.
2026-04-27 17:17:24 +02:00
littlecodedragon
17c6e6bd05 Normalize Forgejo JSON secrets before writing release files.
Some checks failed
Forgejo Release Builder / release (push) Failing after 3s
Accept raw JSON, quoted JSON, or base64 JSON for secret payloads and emit valid canonical JSON files for Gradle processing.
2026-04-27 17:13:47 +02:00
littlecodedragon
ea69546fcb Accept raw or base64 JSON secrets in Forgejo release workflow.
Some checks failed
Forgejo Release Builder / release (push) Failing after 3s
Validate secrets as JSON and fall back to base64 decoding when needed so google-services and client secrets are parsed correctly.
2026-04-27 17:12:18 +02:00
littlecodedragon
1f552c2774 Fix malformed JSON secret files in Forgejo release workflow.
Some checks failed
Forgejo Release Builder / release (push) Failing after 3s
Write secrets via printf and validate with python json.tool so google-services and client secrets remain valid JSON in CI.
2026-04-27 17:11:18 +02:00
littlecodedragon
1fc3835259 Stabilize Forgejo Android build by avoiding Gradle daemon in CI.
Some checks failed
Forgejo Release Builder / release (push) Failing after 6m58s
Run Gradle with --no-daemon and reduced workers to prevent daemon crashes in containerized runner jobs.
2026-04-27 16:50:33 +02:00
littlecodedragon
041fd7e5ee Set Android SDK env vars for containerized Forgejo builds.
Detect /opt/android-sdk-linux, export ANDROID_HOME/ANDROID_SDK_ROOT, and write local.properties so Gradle can resolve the SDK path.
2026-04-27 07:06:26 +02:00
littlecodedragon
acca36c3a3 Harden JDK package-manager detection in Forgejo release job.
Some checks failed
Forgejo Release Builder / release (push) Failing after 23m19s
Log PATH and package manager probes, check common absolute binary locations, and keep workflow free of control bytes for Forgejo parsing.
2026-04-27 06:41:24 +02:00
littlecodedragon
fc6b46b07b Remove hidden control bytes from Forgejo workflow.
Some checks failed
Forgejo Release Builder / release (push) Failing after 6m42s
Clean trailing NUL bytes so Forgejo can parse build_release.yml and enqueue tag-based runs again.
2026-04-27 06:37:13 +02:00
littlecodedragon
2a0caf80ff Adjust Forgejo checkout URL for host-networked Docker jobs.
Use 127.0.0.1 Forgejo endpoint from job steps so clone and API calls stay local to the NAS host network path.
2026-04-27 06:23:46 +02:00
littlecodedragon
5396ebad7c Fix Forgejo release workflow for Docker executor.
Some checks failed
Forgejo Release Builder / release (push) Failing after 3m15s
Use a container-reachable Forgejo checkout URL and support package installs via root or sudo in container jobs.
2026-04-27 06:05:44 +02:00
littlecodedragon
1f554081a5 ci: make Forgejo JDK install distro-aware
Some checks failed
Forgejo Release Builder / release (push) Failing after 1s
Detect dnf/apt/apk/pacman in the Forgejo release workflow so Java setup works across runner base images.
2026-04-27 05:15:30 +02:00
littlecodedragon
029c3a25f0 ci: replace checkout action with shell clone on Forgejo
Some checks failed
Forgejo Release Builder / release (push) Failing after 1s
Avoid JS-based checkout action dependency because runner image lacks node binary.
2026-04-27 04:56:48 +02:00
littlecodedragon
f6d9e07077 ci: remove unavailable signing action on Forgejo
Some checks failed
Forgejo Release Builder / release (push) Failing after 0s
Drop external APK signing action and publish unsigned release artifacts in Forgejo workflow to keep pipeline executable.
2026-04-27 04:53:29 +02:00
littlecodedragon
138a92854e ci: remove external action dependencies in Forgejo workflow
Some checks failed
Forgejo Release Builder / release (push) Failing after 0s
Replace setup-java, write-file-action, and setup-gradle action steps with shell-based equivalents for reliable Forgejo execution.
2026-04-27 04:51:29 +02:00
littlecodedragon
dbee19612b ci: sanitize Forgejo release workflow yaml
Some checks failed
Forgejo Release Builder / release (push) Failing after 5s
Remove hidden control bytes so Forgejo can parse build_release.yml again.
2026-04-27 04:43:14 +02:00
littlecodedragon
efb1a1e539 ci: touch Forgejo workflow for trigger
Add a marker comment and keep Forgejo release workflow explicitly node20-compatible.
2026-04-26 17:33:58 +02:00
littlecodedragon
5b93575bab ci: fix Forgejo release workflow action versions
Switch checkout/setup-java/setup-gradle to node20-compatible action versions for Forgejo runner v3.5.1.
2026-04-26 17:19:39 +02:00
littlecodedragon
d51aaa39b9 ci: add Forgejo release workflow
Some checks failed
Forgejo Release Builder / release (push) Failing after 5s
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 14:28:23 +02:00