diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-12 20:12:10 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-02-15 14:14:20 +0000 |
| commit | 114d80d9a3228b0e7124d0bc4855bd72e482fcb0 (patch) | |
| tree | 4de7492829a3fa6e8c56ede3b277326c6147d54c /.github/workflows | |
| parent | 99409eb66f7ec410170e6d14ea9a9020c9aaf537 (diff) | |
| download | mullvadvpn-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.yml | 77 |
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 |
