ringrtc/.github/workflows/android_artifacts.yml
2026-01-08 12:30:26 -08:00

84 lines
2.6 KiB
YAML

name: Build RingRTC Android Artifacts
run-name: Build RingRTC Android Artifacts (${{ github.ref_name }})
on:
workflow_dispatch:
inputs:
dry_run:
description: "When true, don't publish"
default: false
required: false
type: boolean
runner:
description: "Linux runner:"
default: 'ubuntu-24.04-4-cores'
required: true
type: string
workflow_call:
inputs:
dry_run:
description: "When true, don't publish"
default: true
required: true
type: boolean
runner:
description: "Linux runner:"
default: 'ubuntu-24.04-4-cores'
required: true
type: string
env:
CARGO_TERM_COLOR: always
NDK_VERSION: '28.0.13004108'
jobs:
build_android:
name: Build Android
permissions:
contents: 'read'
# Needed for google-github-actions/auth.
id-token: 'write'
runs-on: ${{ inputs.runner }}
steps:
- uses: actions/checkout@v4
- name: Install NDK
run: echo "y" | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;${{ env.NDK_VERSION }}"
- run: 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: sudo apt-get update && sudo apt-get install -y protobuf-compiler
- name: set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- run: ./bin/fetch-artifact --platform android --release
- run: ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$NDK_VERSION" ./bin/build-aar --ringrtc-only --release
if: ${{ inputs.dry_run }}
- id: gcp-auth
uses: google-github-actions/auth@v2
if: ${{ !inputs.dry_run }}
with:
workload_identity_provider: 'projects/741367068918/locations/global/workloadIdentityPools/github/providers/github-actions'
service_account: 'github-actions@signal-build-artifacts.iam.gserviceaccount.com'
token_format: 'access_token'
- run: ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$NDK_VERSION" ./bin/build-aar --ringrtc-only --release
if: ${{ !inputs.dry_run }}
env:
CLOUDSDK_AUTH_ACCESS_TOKEN: ${{ steps.gcp-auth.outputs.access_token }}
# The last 8 characters of the key ID
ORG_GRADLE_PROJECT_signingKeyId: ${{ secrets.SIGNING_KEYID }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
# ASCII-armored PGP secret key
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}