blob: 222ac752fa0710c3b9311290231ee8cbf5c9f5d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
name: Android app CI
on:
# Build whenever a file that affects Android is changed by a push
push:
paths:
- .github/workflows/android-app.yml
- android/**
- mullvad-daemon/**
- mullvad-jni/**
- mullvad-paths/**
- mullvad-problem-report/**
- mullvad-rpc/**
- mullvad-types/**
- talpid-core/**
- talpid-platform-metadata/**
- talpid-types/**
- talpid-types/**
- wireguard/**
- Cargo.toml
- build-apk.sh
- update-api-metadata.sh
- update-version-metadata.sh
- version-metadata.sh
# Build if requested manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checkout repository
- uses: actions/checkout@v2
# Install Rust
- uses: ATiltedTree/setup-rust@v1.0.4
with:
rust-version: stable
targets: aarch64-linux-android
# Install Go
- uses: actions/setup-go@v2.1.3
with:
go-version: 1.16
# Install Android SDK
- uses: maxim-lobanov/setup-android-tools@v1
with:
packages: |
platforms;android-30
build-tools;30.0.3
cache: true
# Install Android NDK
- id: install-android-ndk
uses: nttld/setup-ndk@v1
with:
ndk-version: r20b
# Configure Cargo to use NDK toolchain
- run: |
cat >> $HOME/.cargo/config << EOF
[target.aarch64-linux-android]
ar = "${{ steps.install-android-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"
linker = "${{ steps.install-android-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang"
EOF
# Build APK
- env:
RUSTFLAGS: --deny warnings
NDK_TOOLCHAIN_DIR: ${{ steps.install-android-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin
AR_aarch64_linux_android: ${{ steps.install-android-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar
CC_aarch64_linux_android: ${{ steps.install-android-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang
ARCHITECTURES: arm64
run: |
./wireguard/build-wireguard-go.sh --android --no-docker
source env.sh aarch64-linux-android
cargo build --target aarch64-linux-android --verbose --package mullvad-jni
cd android
./gradlew --console plain assembleDebug
./gradlew testDebugUnitTest
|