1+ name : Android Integration Test
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ signal_android_branch :
7+ description : ' Signal-Android branch to test against'
8+ required : false
9+ default : ' main'
10+ type : string
11+
12+ env :
13+ CARGO_TERM_COLOR : always
14+ NDK_VERSION : 28.0.13004108
15+
16+ jobs :
17+ android-integration :
18+ name : Android Client Integration Test
19+
20+ runs-on : ubuntu-latest-8-cores
21+
22+ timeout-minutes : 60
23+
24+ steps :
25+ - name : Checkout libsignal
26+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
27+ with :
28+ path : libsignal
29+ submodules : recursive
30+
31+ - name : Checkout Signal-Android
32+ uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
33+ with :
34+ repository : signalapp/Signal-Android
35+ ref : ${{ inputs.signal_android_branch }}
36+ path : Signal-Android
37+
38+ - run : ' echo "JAVA_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV"'
39+
40+ - name : Validate Gradle Wrapper
41+ uses : gradle/actions/wrapper-validation@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0
42+
43+ - run : |
44+ cd libsignal
45+ rustup toolchain install $(cat rust-toolchain) --profile minimal --target aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-android
46+
47+ - name : Install protoc
48+ run : |
49+ curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v32.0/protoc-32.0-linux-x86_64.zip
50+ sudo unzip -o protoc-32.0-linux-x86_64.zip -d /usr/local bin/protoc
51+ sudo unzip -o protoc-32.0-linux-x86_64.zip -d /usr/local 'include/*'
52+ rm protoc-32.0-linux-x86_64.zip
53+
54+ - name : Install Android NDK
55+ run : |
56+ sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;$NDK_VERSION"
57+ echo "ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${NDK_VERSION}" >> "$GITHUB_ENV"
58+
59+ - name : Run Android's QA checks with local libsignal
60+ run : ./gradlew qa --no-daemon --stacktrace -PlibsignalClientPath=../libsignal -F OFF
61+ working-directory : Signal-Android
62+ shell : bash # Explicitly setting the shell turns on pipefail in GitHub Actions
63+
64+ - name : Upload test results
65+ if : failure()
66+ uses : actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
67+ with :
68+ name : test-results
69+ path : |
70+ Signal-Android/**/build/reports/
71+ Signal-Android/**/build/test-results/
72+ retention-days : 7
0 commit comments