Skip to content

Commit d694fc3

Browse files
Add libsignal-client Android interop build integration test
1 parent 6511260 commit d694fc3

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
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

Comments
 (0)