Skip to content

Extend jobs to run android and report binary sizes#86

Open
k-wasniowski wants to merge 1 commit intocisco:mainfrom
k-wasniowski:android-builds
Open

Extend jobs to run android and report binary sizes#86
k-wasniowski wants to merge 1 commit intocisco:mainfrom
k-wasniowski:android-builds

Conversation

@k-wasniowski
Copy link
Copy Markdown
Contributor

@k-wasniowski k-wasniowski commented Mar 30, 2026

Add Android CI/CD builds and binary size reporting

Summary

Extends the GitHub Actions CI/CD pipeline to cross-compile for Android and report binary sizes on every PR.

What Changed

Android build job (android-build)

  • New matrix job cross-compiling sframe for Android using the NDK toolchain
  • Targets 3 ABIs: arm64-v8a, armeabi-v7a, x86_64 (API level 24+)
  • Uses vcpkg with VCPKG_CHAINLOAD_TOOLCHAIN_FILE to layer the Android NDK toolchain under vcpkg's package management
  • Tests all 3 crypto backends (OPENSSL_1_1, OPENSSL_3, BORINGSSL) and both NO_ALLOC modes
  • Installs nasm and ninja-build dependencies (required by BoringSSL and the Ninja generator)
  • Runs in parallel with the existing desktop builds — no sequential dependency

Binary size reporting (size-report)

  • Both desktop-build and android-build jobs now record the built library size after each build
  • Each matrix combination uploads a uniquely-named CSV artifact to avoid merge collisions
  • A new size-report job runs after all builds complete (PR only), collecting all size artifacts and posting a Markdown summary table as a sticky PR comment via marocchino/sticky-pull-request-comment

Job renaming

  • builddesktop-build for clarity alongside the new android-build job

New CI jobs

Job Runs on Purpose
desktop-build windows/ubuntu/macos Existing desktop builds + tests (renamed)
android-build ubuntu Cross-compile for Android NDK targets
size-report ubuntu (PR only) Aggregate and post binary size table

Matrix coverage

Desktop (existing)

  • 3 OS × 3 crypto × 2 alloc = 18 combinations

Android (new)

  • 3 ABI × 3 crypto × 2 alloc = 18 combinations

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