Skip to content

Commit

Permalink
Merge branch 'main' into feature/add_manifest_attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
MarijnS95 committed Jun 28, 2023
2 parents 3e555ba + a967c19 commit 4139f86
Show file tree
Hide file tree
Showing 7 changed files with 136 additions and 161 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/android_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ else
adb shell am start -a android.intent.action.MAIN -n "rust.example.hello_world/android.app.NativeActivity"
fi

sleep 30s
sleep 30

adb logcat *:E hello_world:V -d | tee ~/logcat.log

Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@ jobs:
- { name: "cargo-apk", target: "x86_64-unknown-linux-gnu" }
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.crate.target }}
override: true
- name: Publish ${{ matrix.crate.name }}
uses: actions-rs/cargo@v1
continue-on-error: true
with:
command: publish
args: --manifest-path ${{ matrix.crate.name }}/Cargo.toml --target ${{ matrix.crate.target }} --token ${{ secrets.cratesio_token }}
run: cargo publish --manifest-path ${{ matrix.crate.name }}/Cargo.toml --target ${{ matrix.crate.target }} --token ${{ secrets.cratesio_token }}
274 changes: 126 additions & 148 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,97 +6,80 @@ jobs:
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Format
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- uses: actions/checkout@v2
- name: Format
run: cargo fmt --all -- --check

clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
target: aarch64-linux-android
- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
- uses: actions/checkout@v2
- name: Install aarch64-linux-android Rust target
run: rustup target add aarch64-linux-android
- name: Clippy
# Use one of our supported targets to lint all crates including
# the target-specific `ndk` in one go.
# This assumes our host-tools (cargo-apk and dependencies)
# also compile cleanly under this target.
args: --all --all-targets --all-features --target aarch64-linux-android -- -Dwarnings
run: cargo clippy --all --all-targets --all-features --target aarch64-linux-android -- -Dwarnings

check_msrv:
name: Check MSRV (1.60.0)
name: Check MSRV (1.64.0)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: dtolnay/rust-toolchain@1.60.0
- uses: dtolnay/rust-toolchain@1.64.0
with:
target: aarch64-linux-android
- uses: actions-rs/cargo@v1
with:
command: check
# See comment above about using one of our supported targets.
args: --workspace --all-targets --all-features --target aarch64-linux-android
- name: Check
# See comment above about using one of our supported targets.
run: cargo check --workspace --all-targets --all-features --target aarch64-linux-android

build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
rust-channel: ['stable', 'nightly']
os: [ubuntu-latest]
rust-channel: ["stable", "nightly"]
rust-target:
- 'armv7-linux-androideabi'
- 'aarch64-linux-android'
- 'i686-linux-android'
- 'x86_64-linux-android'
- "armv7-linux-androideabi"
- "aarch64-linux-android"
- "i686-linux-android"
- "x86_64-linux-android"
include:
- os: windows-latest
rust-channel: 'stable'
rust-target: 'aarch64-linux-android'
rust-channel: "stable"
rust-target: "aarch64-linux-android"
- os: windows-latest
rust-channel: 'stable'
rust-target: 'x86_64-linux-android'
rust-channel: "stable"
rust-target: "x86_64-linux-android"

runs-on: ${{ matrix.os }}
name: Build apk

steps:
- uses: actions/checkout@v2

- name: Installing Rust ${{ matrix.rust-channel }} w/ ${{ matrix.rust-target }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-channel }}
target: ${{ matrix.rust-target }}
override: true

- name: Install cargo-apk
run:
cargo install --path cargo-apk

- name: Cargo apk build for target ${{ matrix.rust-target }}
run: cargo apk build -p examples --target ${{ matrix.rust-target }} --examples

- uses: actions/upload-artifact@v2
# Only need this for CI, unless users are interested in downloading
# a ready-made app that does nothing but printing "hello world".
if: ${{ matrix.rust-target == 'x86_64-linux-android' }}
name: Upload hello_world apk
with:
name: hello_world_${{ matrix.os }}_${{ matrix.rust-target }}
path: ./target/debug/apk/examples/hello_world.apk
- uses: actions/checkout@v2

- name: Installing Rust ${{ matrix.rust-channel }} w/ ${{ matrix.rust-target }}
run: |
rustup toolchain install ${{ matrix.rust-channel }}
rustup default ${{ matrix.rust-channel }}
rustup target add ${{ matrix.rust-target }}
- name: Install cargo-apk
run: cargo install --path cargo-apk

- name: Cargo apk build for target ${{ matrix.rust-target }}
run: cargo apk build -p examples --target ${{ matrix.rust-target }} --examples

- uses: actions/upload-artifact@v2
# Only need this for CI, unless users are interested in downloading
# a ready-made app that does nothing but printing "hello world".
if: ${{ matrix.rust-target == 'x86_64-linux-android' }}
name: Upload hello_world apk
with:
name: hello_world_${{ matrix.os }}_${{ matrix.rust-target }}
path: ./target/debug/apk/examples/hello_world.apk

android_emulator:
name: hello_world example on emulator
Expand All @@ -114,112 +97,107 @@ jobs:
profile: Nexus 6

steps:
- name: Checkout
uses: actions/checkout@v2

- uses: actions/download-artifact@v2
name: Download hello_world APK
if: ${{ matrix.source_os != 'local' }}
id: download
with:
name: hello_world_${{ matrix.source_os }}_x86_64-linux-android

- name: Install `cargo-apk` and add `x86_64-linux-android` target
if: ${{ matrix.source_os == 'local' }}
run: |
cargo install --path cargo-apk
rustup target add x86_64-linux-android
- name: AVD cache
uses: actions/cache@v2
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
# Bump the trailing number when making changes to the emulator setup below
key: avd-${{ env.api-level }}-1

- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.api-level }}
arch: ${{ env.arch }}
target: ${{ env.target }}
profile: ${{ env.profile }}
emulator-options: ${{ env.emulator-options }}
disable-animations: true
force-avd-creation: false
script: echo "Generated AVD snapshot for caching."

- name: Start hello_world example
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.api-level }}
arch: ${{ env.arch }}
target: ${{ env.target }}
profile: ${{ env.profile }}
emulator-options: -no-snapshot-save ${{ env.emulator-options }}
disable-animations: true
force-avd-creation: false
script: ./.github/workflows/android_test.sh "${{ steps.download.outputs.download-path }}"

- name: Upload emulator logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: log
path: ~/logcat.log
- name: Checkout
uses: actions/checkout@v2

- uses: actions/download-artifact@v2
name: Download hello_world APK
if: ${{ matrix.source_os != 'local' }}
id: download
with:
name: hello_world_${{ matrix.source_os }}_x86_64-linux-android

- name: Install `cargo-apk` and add `x86_64-linux-android` target
if: ${{ matrix.source_os == 'local' }}
run: |
cargo install --path cargo-apk
rustup target add x86_64-linux-android
- name: AVD cache
uses: actions/cache@v2
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
# Bump the trailing number when making changes to the emulator setup below
key: avd-${{ env.api-level }}-1

- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.api-level }}
arch: ${{ env.arch }}
target: ${{ env.target }}
profile: ${{ env.profile }}
emulator-options: ${{ env.emulator-options }}
disable-animations: true
force-avd-creation: false
script: echo "Generated AVD snapshot for caching."

- name: Start hello_world example
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ env.api-level }}
arch: ${{ env.arch }}
target: ${{ env.target }}
profile: ${{ env.profile }}
emulator-options: -no-snapshot-save ${{ env.emulator-options }}
disable-animations: true
force-avd-creation: false
script: ./.github/workflows/android_test.sh "${{ steps.download.outputs.download-path }}"

- name: Upload emulator logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: log
path: ~/logcat.log

build-host:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
rust-channel: ['stable', 'nightly']
os: [ubuntu-latest]
rust-channel: ["stable", "nightly"]

runs-on: ${{ matrix.os }}
name: Host-side tests

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2

- name: Installing Rust ${{ matrix.rust-channel }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-channel }}
override: true
- name: Installing Rust ${{ matrix.rust-channel }}
run: |
rustup toolchain install ${{ matrix.rust-channel }}
rustup default ${{ matrix.rust-channel }}
- name: Test ndk-build
run:
cargo test -p ndk-build --all-features
- name: Test ndk-build
run: cargo test -p ndk-build --all-features

- name: Test cargo-apk
run:
cargo test -p cargo-apk --all-features
- name: Test cargo-apk
run: cargo test -p cargo-apk --all-features

docs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
rust-channel: ['stable', 'nightly']
os: [ubuntu-latest]
rust-channel: ["stable", "nightly"]

runs-on: ${{ matrix.os }}
name: Build-test docs

steps:
- uses: actions/checkout@v2

- name: Installing Rust ${{ matrix.rust-channel }}
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-channel }}
override: true

- name: Document all crates
env:
RUSTDOCFLAGS: -Dwarnings
run:
cargo doc --all --all-features
- uses: actions/checkout@v2

- name: Installing Rust ${{ matrix.rust-channel }}
run: |
rustup toolchain install ${{ matrix.rust-channel }}
rustup default ${{ matrix.rust-channel }}
- name: Document all crates
env:
RUSTDOCFLAGS: -Dwarnings
run: cargo doc --all --all-features
2 changes: 1 addition & 1 deletion cargo-apk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ keywords = ["android", "ndk", "apk"]
documentation = "https://docs.rs/cargo-apk"
homepage = "https://github.com/rust-mobile/cargo-apk"
repository = "https://github.com/rust-mobile/cargo-apk"
rust-version = "1.60"
rust-version = "1.64"

[dependencies]
anyhow = "1.0.57"
Expand Down
2 changes: 1 addition & 1 deletion cargo-apk/src/apk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ impl<'a> ApkBuilder<'a> {

let target_dir = self.build_dir.join(artifact);
self.ndk.ndk_gdb(
&target_dir,
target_dir,
"android.app.NativeActivity",
self.device_serial.as_deref(),
)?;
Expand Down
3 changes: 2 additions & 1 deletion ndk-build/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Unreleased

- Add `android:extractNativeLibs`, `android:usesCleartextTraffic`, attributes to the manifest's `Application` element, and `android:alwaysRetainTaskState` to the `Activity` element. ([#15](https://github.com/rust-mobile/cargo-apk/pull/15))
- Add `android:extractNativeLibs`, `android:usesCleartextTraffic` attributes to the manifest's `Application` element, and `android:alwaysRetainTaskState` to the `Activity` element. ([#15](https://github.com/rust-mobile/cargo-apk/pull/15))
- Enable building from `android` host ([#29](https://github.com/rust-mobile/cargo-apk/pull/29))

# 0.9.0 (2022-11-23)

Expand Down
Loading

0 comments on commit 4139f86

Please sign in to comment.