Skip to content

Commit

Permalink
ci: Update demo build rules
Browse files Browse the repository at this point in the history
  • Loading branch information
katyo committed Feb 21, 2024
1 parent b20fa0d commit d0b9d9d
Showing 1 changed file with 47 additions and 39 deletions.
86 changes: 47 additions & 39 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:
- '[0-9]+.[0-9]+.[0-9]+'
pull_request:
env:
SDK_BUILD_TOOLS_VERSION: '33.0.2'
SDK_CMDLINE_TOOLS_VERSION: '9.0'
SDK_BUILD_TOOLS_VERSION: '34.0.0'
NDK_VERSION: '25.2.9519653'
ANDROID_PLATFORM: '34'
jobs:
format:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -57,18 +57,15 @@ jobs:
java-version: 17
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Set Up Android tools
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "cmdline-tools;${{ env.SDK_CMDLINE_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "ndk;${{ env.NDK_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-30"
with:
log-accepted-android-sdk-licenses: false
packages: build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }} ndk;${{ env.NDK_VERSION }} platforms;android-${{ env.ANDROID_PLATFORM }}
- name: Config Android NDK
env:
TRIPLE: x86_64-linux-android
run: |
echo "$ANDROID_SDK_ROOT/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH
for var in ANDROID_NDK ANDROID_NDK_HOME ANDROID_NDK_LATEST_HOME ANDROID_NDK_ROOT; do
for var in ANDROID_NDK ANDROID_NDK_HOME ANDROID_NDK_LATEST_HOME ANDROID_NDK_ROOT NDK_HOME; do
echo "$var=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> $GITHUB_ENV
done
TRIPLE_ENV=$(echo $TRIPLE | tr '-' '_')
Expand Down Expand Up @@ -115,16 +112,13 @@ jobs:
java-version: 17
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Set Up Android tools
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "cmdline-tools;${{ env.SDK_CMDLINE_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "ndk;${{ env.NDK_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-30"
with:
log-accepted-android-sdk-licenses: false
packages: build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }} ndk;${{ env.NDK_VERSION }} platforms;android-${{ env.ANDROID_PLATFORM }}
- name: Config Android NDK
run: |
echo "$ANDROID_SDK_ROOT/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH
for var in ANDROID_NDK ANDROID_NDK_HOME ANDROID_NDK_LATEST_HOME ANDROID_NDK_ROOT; do
for var in ANDROID_NDK ANDROID_NDK_HOME ANDROID_NDK_LATEST_HOME ANDROID_NDK_ROOT NDK_HOME; do
echo "$var=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> $GITHUB_ENV
done
- name: Setup Rust ${{ matrix.rust }} [${{ matrix.target }}]
Expand Down Expand Up @@ -173,7 +167,7 @@ jobs:
if: matrix.rust == 'stable' && matrix.profile == 'release'
uses: actions/upload-artifact@v4
with:
name: bindings
name: bindings-${{ matrix.target }}
path: bindings
overwrite: true
- name: Archive library
Expand All @@ -183,7 +177,7 @@ jobs:
if: matrix.rust == 'stable'
uses: actions/upload-artifact@v4
with:
name: library
name: library-${{ matrix.target }}-${{ matrix.profile }}
path: liboboe-ext_${{ matrix.target }}_${{ matrix.profile }}.tar.gz
overwrite: true

Expand All @@ -197,9 +191,10 @@ jobs:
with:
submodules: true
- name: Download bindings
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: bindings
pattern: bindings-*
merge-multiple: true
path: sys/src
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
Expand All @@ -215,7 +210,7 @@ jobs:
build-demo:
needs:
- build
- cargo-apk
- cargo-mobile2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -228,21 +223,27 @@ jobs:
java-version: 17
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Set Up Android tools
with:
log-accepted-android-sdk-licenses: false
packages: build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }} ndk;${{ env.NDK_VERSION }} platforms;android-${{ env.ANDROID_PLATFORM }}
- name: Config Android NDK
run: |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "build-tools;${{ env.SDK_BUILD_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "cmdline-tools;${{ env.SDK_CMDLINE_TOOLS_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "ndk;${{ env.NDK_VERSION }}"
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT --install "platforms;android-30"
echo "$ANDROID_SDK_ROOT/ndk/$NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin" >> $GITHUB_PATH
for var in ANDROID_NDK ANDROID_NDK_HOME ANDROID_NDK_LATEST_HOME ANDROID_NDK_ROOT NDK_HOME; do
echo "$var=$ANDROID_SDK_ROOT/ndk/$NDK_VERSION" >> $GITHUB_ENV
done
- name: Setup Rust
uses: hecrj/setup-rust-action@v1
with:
targets: armv7-linux-androideabi, aarch64-linux-android, i686-linux-android, x86_64-linux-android
- name: Setup Cargo apk
- name: Setup Cargo mobile
uses: actions/cache@v4
with:
path: ~/.cargo/bin/cargo-apk
key: ${{ runner.os }}-cargo-apk
path: |
~/.cargo/bin/cargo-android
~/.cargo/bin/cargo-mobile
~/.cargo/.cargo-mobile2
key: ${{ runner.os }}-cargo-mobile2
- uses: Swatinem/rust-cache@v2
- name: Create signing key
run: |
Expand All @@ -254,13 +255,16 @@ jobs:
# use existing keystore to sign apk
sed -i 's/keystore_password = "android"/keystore_password = "${{ secrets.APK_KEYSTORE_PASSWORD }}"/' demo/Cargo.toml
fi
- name: Init demo apk
run: |
cd demo && cargo module init && sed -ri 's/((compile|target)Sdk *= *)33/\134/g' gen/android/app/build.gradle.kts
- name: Build demo apk
run: cargo apk build --manifest-path demo/Cargo.toml --release
run: cd demo && cargo mobile android apk build --release --split-per-abi
- name: Upload demo apk
uses: actions/upload-artifact@v4
with:
name: apk
path: target/release/apk/oboe-demo.apk
path: demo/gen/android/app/build/outputs/apk/*/release/*.apk

release:
if: github.repository == 'katyo/oboe-rs' && startsWith(github.ref, 'refs/tags/')
Expand All @@ -270,11 +274,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download libraries
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: library
pattern: library-*
merge-multiple: true
- name: Download demo
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: apk
- name: Create release
Expand Down Expand Up @@ -322,15 +327,18 @@ jobs:
if: steps.cache.outputs.cache-hit != 'true'
run: cargo install cargo-ndk --force

cargo-apk:
cargo-mobile2:
runs-on: ubuntu-latest
steps:
- name: Prepare cache
uses: actions/cache@v4
id: cache
with:
path: ~/.cargo/bin/cargo-apk
key: ${{ runner.os }}-cargo-apk
- name: Setup cargo apk
path: |
~/.cargo/bin/cargo-android
~/.cargo/bin/cargo-mobile
~/.cargo/.cargo-mobile2
key: ${{ runner.os }}-cargo-mobile2
- name: Setup cargo mobile2
if: steps.cache.outputs.cache-hit != 'true'
run: cargo install cargo-apk
run: cargo install cargo-mobile2

0 comments on commit d0b9d9d

Please sign in to comment.