Skip to content

Prepare signed version-triggered Google Play builds - #33

Merged
Eoic merged 2 commits into
masterfrom
feat/google-play-releases
Oct 5, 2026
Merged

Eoic merged 2 commits into
masterfrom
feat/google-play-releases

Conversation

@Eoic

@Eoic Eoic commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Ticket

Release preparation for Google Play internal device testing.

Summary

Android releases currently use debug signing and produce an APK. Prepare signed Google Play App Bundles for com.papyrus.papyrus, with release jobs gated on changes to the committed MAJOR.MINOR.PATCH+BUILD version rather than tag pushes or workflow counters. Dependency-only pubspec edits skip builds; manual dispatch bootstraps or retries the first unreleased version. Existing web/Linux/Windows artifacts remain supported.

Require public HTTPS endpoint settings and upload-key secrets in the GitHub release environment. Add internet permission, optional camera support, bundle/ELF 16 KB checks, and setup instructions. Fix Android build blockers with desktop_drop 0.8.4, a licensed vendored unrar_file compatibility patch, and an SLF4J NOP binding. Normalize the reader pin to the workspace revision; both reader commits have identical trees.

Testing

  • 10 release/native-check regression tests, including committed Git comparisons, dependency-only edits, tag reuse and monotonic Android codes.
  • Client formatting, analysis and web bootstrap checks passed. Focused metadata/drop-registration tests: 10 passed, 8 external archive fixtures skipped because sample files are absent.
  • Signed AAB built using a disposable test key and placeholder URLs. Verified identity, API 36 target, version 1.0.0+1, internet permission, optional camera, signature, all 20 native libraries' ELF alignment, PAGE_ALIGNMENT_16K, and generated APK ZIP alignment.
  • Release without signing configuration rejected; workflow actionlint passed; locked dependency setup passed.

UI evidence

Compatibility and migration

No library-data migration or reader behavior change. Release signing now requires an upload key. CI keeps the existing Flutter 3.41.2 SDK and reads the committed Android build number. Server semantic versions are coordinated by the companion workspace/server changes.

Notes

See docs/RELEASING.md. Initial client version is unchanged, so merging this preparation skips release builds; dispatch on master after configuring endpoints/signing for the first upload. The validation artifact is not for distribution. Play Console creation/upload is manual; real-device auth/sync and 16 KB execution remain unverified. Account deletion is still required before applicable broader distribution. No store publishing or server provisioning occurs in this PR.

Checklist

  • The branch, commits, and pull request title follow the repository conventions.
  • The change is complete and limited to the ticket's scope.
  • Relevant tests have been added or updated.
  • Formatting, analysis, and relevant available tests pass; skipped external fixtures are noted above.
  • Documentation, UI evidence, and migration notes are included where relevant.
  • No credentials, personal data, copyrighted fixtures, or unrelated generated files are included.
  • The branch is up to date with its target branch.

Companion PRs: PapyrusReader/server#8 and PapyrusReader/papyrus#8.

@Eoic
Eoic marked this pull request as ready for review October 5, 2026 18:15
Copilot AI balanced review requested due to automatic review settings October 5, 2026 18:15
@Eoic
Eoic merged commit f6af5d9 into master Oct 5, 2026
2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-05T18:18:26.971782Z eeea522 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eeea5227a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +63 to +64
- name: Set temporary keystore path
run: printf 'ANDROID_KEYSTORE_PATH=%s/upload.jks\n' "$RUNNER_TEMP" >> "$GITHUB_ENV"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Check out before entering the app working directory

Whenever the version gate enables build-android, this is the first run step, but the job-level default runs it from app/ and checkout does not occur until the following step. On a fresh GitHub-hosted runner that directory does not exist yet, so the shell cannot start and every Android release fails before restoring the keystore. Move checkout ahead of this step or override this step's working directory.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants