libsignal/.github/workflows/android_integration.yml
Jordan Rose f2142df7c0 GitHub: consistent workflow names
- "Integration - *" for jobs we run by hand (Android integration and
  Slow Tests)
- "Release - *" for the release jobs specifically
- "[CI] *" for the jobs that run automatically on PRs and merges
- "[auto] *" for other jobs that run automatically

The reason for the two kinds of prefix is to make the automatic jobs
show up lower in GitHub's list of workflows, since we now have so many
the list gets truncated by default.
2025-12-17 16:18:57 -08:00

73 lines
2.4 KiB
YAML

name: "Integration - Android"
on:
workflow_dispatch:
inputs:
signal_android_branch:
description: 'Signal-Android branch to test against'
required: false
default: 'main'
type: string
env:
CARGO_TERM_COLOR: always
NDK_VERSION: 28.0.13004108
jobs:
android-integration:
name: Android Client Integration Test
runs-on: ubuntu-latest-8-cores
timeout-minutes: 60
steps:
- name: Checkout libsignal
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: libsignal
submodules: recursive
- name: Checkout Signal-Android
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: signalapp/Signal-Android
ref: ${{ inputs.signal_android_branch }}
path: Signal-Android
- run: 'echo "JAVA_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV"'
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0
- run: |
cd libsignal
rustup toolchain install "$(cat rust-toolchain)" --profile minimal --target aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-android
- name: Install protoc
run: |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v32.0/protoc-32.0-linux-x86_64.zip
sudo unzip -o protoc-32.0-linux-x86_64.zip -d /usr/local bin/protoc
sudo unzip -o protoc-32.0-linux-x86_64.zip -d /usr/local 'include/*'
rm protoc-32.0-linux-x86_64.zip
- name: Install Android NDK
run: |
sudo "${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager" --install "ndk;${NDK_VERSION}"
echo "ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${NDK_VERSION}" >> "$GITHUB_ENV"
- name: Run Android's QA checks with local libsignal
run: ./gradlew qa --no-daemon --stacktrace -PlibsignalClientPath=../libsignal -F OFF
working-directory: Signal-Android
shell: bash # Explicitly setting the shell turns on pipefail in GitHub Actions
- name: Upload test results
if: failure()
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
with:
name: test-results
path: |
Signal-Android/**/build/reports/
Signal-Android/**/build/test-results/
retention-days: 7