Skip to content

ci(ffi): packaging-path checks — triggers, lints, peer freshness, gradle smoke (V2-651 slice, V2-698) - #224

Merged
Nic-dorman merged 1 commit into
mainfrom
ci/ffi-packaging-checks
Jul 21, 2026
Merged

ci(ffi): packaging-path checks — triggers, lints, peer freshness, gradle smoke (V2-651 slice, V2-698)#224
Nic-dorman merged 1 commit into
mainfrom
ci/ffi-packaging-checks

Conversation

@Nic-dorman

Copy link
Copy Markdown
Member

First slice of the CI coverage the #222 panel review flagged: ffi/scripts/**, ffi/android/** and ffi/kotlin/** triggered no workflow at all, so packaging changes shipped with zero automated signal.

What's added

Trigger paths extended + one new Linux-safe Packaging checks job:

  1. bash -n on every build script.
  2. Privacy-manifest plist syntax via python plistlib (plutil is macOS-only). Guarded no-op until fix(packaging): iOS privacy manifest, JNA ≥5.15, plist version truth (V2-642, V2-652) #222 lands the manifest.
  3. Vendored bootstrap-peers freshness (V2-698's enforcement half): diffs ffi/rust/ant-ffi/resources/bootstrap_peers.toml against the same file at the pinned ant-client tag (read live from Cargo.toml) — so forgetting the re-copy at a pin bump becomes a CI failure instead of stale bootstrap silently shipping to production apps. Guarded no-op until feat(ffi): production connect_default* + data_dir connect arg (V2-637, V2-643) #220 lands the vendored file.
  4. Android gradle dependency-resolution smoke (JDK 17 + Gradle 8.9, no .so needed): proves the AAR's declared deps actually resolve at the pinned versions — this would have validated fix(packaging): iOS privacy manifest, JNA ≥5.15, plist version truth (V2-642, V2-652) #222's JNA bump automatically.

Verified locally

All four check logics proven on this machine before pushing: scripts parse; #220's vendored file diffs clean against ant-cli-v0.2.11's upstream copy; #222's manifest parses via plistlib; gradle resolves jna:5.14.0 + coroutines:1.8.1 on this base. This PR also modifies the workflow file itself, so the new job runs live on this PR.

Scope notes

Holding merge pending review + Nic's go-ahead (no conflicts with #219#223 — workflow file only).

🤖 Generated with Claude Code

…peer freshness, gradle smoke

ffi/scripts, ffi/android and ffi/kotlin previously triggered NO workflow
at all (the packaging PR shipped with zero automated signal). Adds the
paths to the ffi-ci triggers plus a Linux-safe "Packaging checks" job:

- bash -n on all build scripts
- privacy-manifest plist syntax via python plistlib (plutil is
  macOS-only); guarded until the manifest PR lands
- vendored bootstrap_peers.toml diffed against the pinned ant-client
  tag's copy -- forgetting the re-copy at a pin bump becomes a CI
  failure instead of stale bootstrap shipping (V2-698); guarded until
  the connect_default PR lands
- Android gradle dependency-resolution smoke (JDK 17 + Gradle 8.9):
  proves the AAR's declared deps (JNA, coroutines) resolve at the
  pinned versions; no .so files needed

All four check logics verified locally (scripts parse; #220's vendored
file matches tag ant-cli-v0.2.11 upstream; #222's manifest parses;
gradle resolves jna 5.14.0 + coroutines 1.8.1 on this base).
Compile/AAR/R8 coverage stays tracked on V2-651.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Nic-dorman
Nic-dorman merged commit 71c84b9 into main Jul 21, 2026
3 checks passed
@Nic-dorman
Nic-dorman deleted the ci/ffi-packaging-checks branch July 21, 2026 14:23
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.

1 participant