Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(android): Add Android builds to CI #682

Open
wants to merge 68 commits into
base: main
Choose a base branch
from

Conversation

rwalworth
Copy link
Contributor

@rwalworth rwalworth commented Apr 16, 2024

Description:
This PR adds Android builds of the C++ SDK to the Github workflows. It will only generate the builds after a PR is merged as to not slow down development. A couple notes:

  • vcpkg needed to upgraded as the baseline we were using was too old for Android builds.
  • Switched to using spdlog logging library in place of log4cxx simply because vcpkg currently supports spdlog but not log4cxx android builds.
  • The Android build is currently done in a docker container, but it could be possibly be done straight on our Github runners as they are linux-x86_64 if this wanted to be looked into later. I tried this but there was an issue finding git that I couldn't figure out quickly.
  • There is an issue testing the Android test executables on an emulator running in an x86_64 environment; even running an arm64 docker container in an x86_64 host environment there were issues. If we would like to test these Android builds in CI, this will need to be figured out. However, I left instructions in the Dockerfile as to how to run the test executables.
  • Some work was done that involved building the examples into Android APKs. This was eventually abandoned, but I left some of the work I had done for that in the Dockerfile as well in case this wants to be done in the future.
  • The examples executables were being installed twice unnecessarily so I removed this.
  • We are now installing gtest via vcpkg instead of manually through CMake.
  • Some filepaths needed updating.
  • Many files had unnecessary includes that I removed.

Related issue(s):

Fixes #660

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
…n vcpkg

Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
…github.com/microsoft/vcpkg/issues/33881)

Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
@rwalworth rwalworth linked an issue Apr 16, 2024 that may be closed by this pull request
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
@rwalworth rwalworth changed the title 00660 add android and ios builds feat(android): Add Android builds to CI Apr 17, 2024
@rwalworth rwalworth self-assigned this Apr 17, 2024
@rwalworth rwalworth added Release Issues tied to release management functions New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. labels Apr 17, 2024
@rwalworth rwalworth marked this pull request as ready for review April 17, 2024 16:03
Copy link
Contributor

@gsstoykov gsstoykov left a comment

Choose a reason for hiding this comment

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

Overall LGTM but shouldn't we wait and see how the communication with the community member goes before pushing this into main? As I saw we still don't have answers from the community member and we would only introduce more configurations and docker pipeline overhead.

Dockerfile Show resolved Hide resolved
Dockerfile Outdated Show resolved Hide resolved
src/sdk/main/include/Logger.h Outdated Show resolved Hide resolved
Dockerfile Show resolved Hide resolved
@rwalworth
Copy link
Contributor Author

Overall LGTM but shouldn't we wait and see how the communication with the community member goes before pushing this into main? As I saw we still don't have answers from the community member and we would only introduce more configurations and docker pipeline overhead.

I could go either way. I have the Android builds only being generated on merge so it won't impact development time. Maybe @SimiHunjan can weigh in here.

Signed-off-by: Rob Walworth <robert.walworth@swirldslabs.com>
Copy link
Contributor

@gsstoykov gsstoykov left a comment

Choose a reason for hiding this comment

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

LGTM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Feature A new feature, service, or documentation. Major changes that are not backwards compatible. Release Issues tied to release management functions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Android builds
2 participants