Skip to content

ci: add a compile-check workflow for REFORK and its feature branches#27

Merged
DaRipper91 merged 1 commit into
REFORKfrom
refork/ci-build-check
Jul 21, 2026
Merged

ci: add a compile-check workflow for REFORK and its feature branches#27
DaRipper91 merged 1 commit into
REFORKfrom
refork/ci-build-check

Conversation

@DaRipper91

Copy link
Copy Markdown
Owner

Summary

Adds a compile-only CI check that runs on PRs/pushes against REFORK and any refork/** branch — including #25 and #26, which currently have zero compiler feedback on ~900+ lines of hand-written Kotlin/XML.

What it does

  1. Downloads jniLibs.zip from Cateners/tiny_container's latest release (required for any build in this repo at all, per its own README — verified this asset exists and the .../releases/latest/download/jniLibs.zip redirect works)
  2. Accepts Android SDK licenses (deliberately not pinning specific platform/build-tools/NDK versions — this is bleeding-edge tooling and a wrong guess would fail for environment reasons, not code reasons)
  3. Runs ./gradlew assembleDebug

What it does NOT do

No signing, no emulator/device, no instrumented tests. This only proves the code compiles — a real device test is still needed before merging #25/#26 regardless of whether this goes green.

🤖 Generated with Claude Code

Nothing in this fork can build without jniLibs.zip (this repo's own
README: download it separately from Cateners/tiny_container's releases
and extract to app/src/main/jniLibs/arm64-v8a) — that download is step
one here, not an afterthought, since without it every build fails
before touching any of this fork's own code.

This is compile-only: no signing, no emulator/device, no instrumented
tests — it exists to catch the class of bug most likely in hand-written
code that never saw a compiler (Kotlin syntax errors, missing imports,
View Binding class/id mismatches, resource reference typos), which is
exactly the risk profile of PR #25 and #26.

Deliberately did not pin specific SDK platform/build-tools/NDK package
versions — this is bleeding-edge tooling (AGP 9.2.1, compileSdk 37) and
a wrong guessed version string would fail the workflow for environment
reasons unrelated to the actual code. Accepting SDK licenses is enough
for AGP to auto-provision whatever it actually needs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 21, 2026 03:28

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.

@DaRipper91
DaRipper91 merged commit fc735a5 into REFORK Jul 21, 2026
2 checks passed
DaRipper91 pushed a commit that referenced this pull request Jul 21, 2026
CI (#27) caught two things on this branch's original ProotExec.kt:

1. A genuine compile error: the KDoc comment's own text contained the
   literal sequence "PROOT_LOADER*/PROOT_TMP_DIR" — the `*/` inside
   that prose prematurely closed the doc comment, so everything after
   it (the rest of the comment, then the real code) got parsed as
   top-level Kotlin and failed with cascading "Expecting a top level
   declaration" syntax errors starting at that exact line/column.

2. The underlying proot flags this file guessed at (-r/-w/-b, no
   --change-id, no proc/sys placeholder files) were also substantively
   wrong, not just wrapped in a comment with a syntax bug. This was
   already found and fixed while building PR #26's UI (which needed to
   actually invoke this to synthesize a working boot_command) by
   locating tiny-computer/images' real, live proot-distro.tiny.yaml —
   but the fix only landed on #26's branch, never backported here,
   which is why CI still caught the old broken version on this one.

Pulling over the already-corrected files as-is from #26 rather than
re-deriving them: ProotExec.kt (runAsRootCommand/bootCommandTemplate
replacing the old runInContainerCommand, using the real verified
flags), DistroInstaller.kt (creates the proc/sys placeholder files
those real flags' bind mounts require, in a second shell session after
extraction completes), DeInstaller.kt (updated call site).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
DaRipper91 pushed a commit that referenced this pull request Jul 21, 2026
CI (#27) caught this: showFragmentForScreen()'s new Screen.DistroSelect/
DeSelect cases referenced these classes without importing them.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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