Skip to content

Commit 3c27109

Browse files
committed
Add Android app and GitHub Actions APK builds
1 parent c09d5d1 commit 3c27109

42 files changed

Lines changed: 2768 additions & 37 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-release.yml

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,87 @@ jobs:
8686
dist/**
8787
target/release/linuxdo-accelerator*
8888
89+
build-android:
90+
strategy:
91+
fail-fast: false
92+
matrix:
93+
include:
94+
- abi: arm64-v8a
95+
rust_target: aarch64-linux-android
96+
artifact_name: android-arm64-v8a
97+
apk_name: linuxdo-accelerator-android-arm64-v8a.apk
98+
- abi: x86_64
99+
rust_target: x86_64-linux-android
100+
artifact_name: android-x86_64
101+
apk_name: linuxdo-accelerator-android-x86_64.apk
102+
103+
runs-on: ubuntu-latest
104+
name: Build ${{ matrix.artifact_name }}
105+
106+
steps:
107+
- uses: actions/checkout@v4
108+
109+
- uses: actions/setup-java@v4
110+
with:
111+
distribution: temurin
112+
java-version: "17"
113+
114+
- uses: android-actions/setup-android@v3
115+
116+
- uses: gradle/actions/setup-gradle@v4
117+
118+
- uses: dtolnay/rust-toolchain@stable
119+
with:
120+
targets: ${{ matrix.rust_target }}
121+
122+
- name: Use crates.io in CI
123+
shell: bash
124+
run: |
125+
mkdir -p .cargo
126+
cat > .cargo/config.toml <<'EOF'
127+
[registries.crates-io]
128+
protocol = "sparse"
129+
130+
[net]
131+
git-fetch-with-cli = true
132+
EOF
133+
134+
- name: Install Android SDK / NDK
135+
shell: bash
136+
run: |
137+
yes | sdkmanager --licenses > /dev/null || true
138+
sdkmanager --install \
139+
"platform-tools" \
140+
"platforms;android-35" \
141+
"build-tools;35.0.0" \
142+
"ndk;27.2.12479018"
143+
144+
- name: Install cargo-ndk
145+
run: cargo install cargo-ndk --locked
146+
147+
- name: Build Android APK
148+
shell: bash
149+
env:
150+
ANDROID_ABI: ${{ matrix.abi }}
151+
RUST_TARGET: ${{ matrix.rust_target }}
152+
ANDROID_BUILD_TYPE: release
153+
APK_OUTPUT_NAME: ${{ matrix.apk_name }}
154+
run: |
155+
export ANDROID_NDK_HOME="${ANDROID_SDK_ROOT}/ndk/27.2.12479018"
156+
./scripts/build-android-apk.sh
157+
158+
- name: Upload Android artifacts
159+
uses: actions/upload-artifact@v4
160+
with:
161+
name: linuxdo-accelerator-${{ matrix.artifact_name }}
162+
path: |
163+
android/dist/*.apk
164+
89165
publish-release:
90166
if: startsWith(github.ref, 'refs/tags/v')
91-
needs: build
167+
needs:
168+
- build
169+
- build-android
92170
runs-on: ubuntu-latest
93171
name: Publish GitHub Release
94172

@@ -108,4 +186,5 @@ jobs:
108186
with:
109187
files: |
110188
release-artifacts/**/dist/**
189+
release-artifacts/**/*.apk
111190
generate_release_notes: true

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@ data/
33
dist/
44
/linuxdo-accelerator.toml
55
tools/
6+
release-downloads/
7+
android/.gradle/
8+
android/.kotlin/
9+
android/**/build/

Cargo.lock

Lines changed: 156 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)