We provide two Android CI runners to the `elixxir` and `xx_network` groups on [git.xx.network](https://git.xx.network/). The documentation below describes the software they run, how the teams can use them, and information for the IT team on their maintenance.
We provide two Android CI runners to the `elixxir` and `xx_network` groups on [git.xx.network](https://git.xx.network/). The documentation below describes the software they run, how the teams can use them, and information for the IT team on their maintenance. Any changes that need to be made to this setup should be told to Sydney Anne.
## Installed Software
The following software is installed onto the Android CI VM for you to use as an end user.
The CI runners are based off a normal install of Ubuntu Server 20.04.3.
The following software is installed onto the Android CI VM for builds:
- GoLang (version 1.17.5)
- Java OpenJDK 8
...
...
@@ -19,11 +21,20 @@ The following software is installed onto the Android CI VM for you to use as an
- Android Emulator
- Android Emulator system image (API version 25, x86, with Google APIs)
Additionally, the following tools are explicitly installed:
- wget
- curl
- tar
- unzip
Software not on the above lists may be available, but cannot be relied upon if Ubuntu removes them from the base install in a future update.
## Using the Android CI
You just need to tag the builds that need the Android tooling in your `gitlab-ci.yml` file with the `android` tag. An example is below. This should only be done for jobs where the Android SDK tools are directly required, as job capacity is very limited.
You need to tag the builds that need the Android tooling in your `.gitlab-ci.yml` file with the `android` tag. (If you're unfamiliar with what a `.gitlab-ci.yml` file is, [GitLab describes it here.](https://docs.gitlab.com/ee/ci/yaml/gitlab_ci_yaml.html)) An example is below. This should only be done for jobs where the Android SDK tools are directly required, as job capacity is very limited.
You also need to ensure that `/android-sdk/platform-tools/` is in your `$PATH` variable, as well as setting the `$ANDROID_HOME` variable to `/android-sdk`. Both of these can be done in a `before_script` if you have multiple jobs that use the `android` tag, or done in the `script` part of your job for just one.
When using the `android` tag, need to ensure that `/android-sdk/platform-tools/` is in your `$PATH`environment variable, as well as setting the `$ANDROID_HOME`environment variable to `/android-sdk`. Both of these can be done in a `before_script` if you have multiple jobs that use the `android` tag, or done in the `script` part of your job for just one.
You may optionally want to add `/usr/local/go/bin` to your `$PATH` if you plan to build Go programs for Android in your job, such as building client bindings.
...
...
@@ -49,7 +60,9 @@ app-build:
---
# IT Team Internal Information
# IT Team Information
At the moment, these are VMware Fusion 12 VM images running on our bank of Mac Mini CI servers.