summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-02-12 20:12:10 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-02-15 14:14:20 +0000
commit114d80d9a3228b0e7124d0bc4855bd72e482fcb0 (patch)
tree4de7492829a3fa6e8c56ede3b277326c6147d54c /.github/workflows
parent99409eb66f7ec410170e6d14ea9a9020c9aaf537 (diff)
downloadmullvadvpn-114d80d9a3228b0e7124d0bc4855bd72e482fcb0.tar.xz
mullvadvpn-114d80d9a3228b0e7124d0bc4855bd72e482fcb0.zip
Create initial GitHub Actions workflow for Android
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/android-app.yml77
1 files changed, 77 insertions, 0 deletions
diff --git a/.github/workflows/android-app.yml b/.github/workflows/android-app.yml
new file mode 100644
index 0000000000..26bab204b2
--- /dev/null
+++ b/.github/workflows/android-app.yml
@@ -0,0 +1,77 @@
+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.13.5
+
+ # 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
+ 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