Skip to content

Commit 833fa7f

Browse files
committed
feat(ci): 支持多个 Android 目标平台的构建和上传
- 添加 armv7-linux-androideabi 构建配置 - 添加 x86_64-linux-android 构建配置 - 添加 i686-linux-android 构建配置 - 为所有 Android 目标平台配置链接器和归档工具 - 更新 Android 构建脚本以支持多目标编译 - 修改上传任务以区分不同架构的 Android二进制文件 - 修复环境变量设置语法问题 - 更新发布资源路径以匹配新的 Android 架构目录结构
1 parent 4802821 commit 833fa7f

1 file changed

Lines changed: 38 additions & 3 deletions

File tree

.github/workflows/rust.yml

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,20 +124,52 @@ jobs:
124124
echo '[target.aarch64-linux-android]' > .cargo/config.toml
125125
echo "ar = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar\"" >> .cargo/config.toml
126126
echo "linker = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang\"" >> .cargo/config.toml
127+
echo '' >> .cargo/config.toml
128+
echo '[target.armv7-linux-androideabi]' >> .cargo/config.toml
129+
echo "ar = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar\"" >> .cargo/config.toml
130+
echo "linker = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang\"" >> .cargo/config.toml
131+
echo '' >> .cargo/config.toml
132+
echo '[target.x86_64-linux-android]' >> .cargo/config.toml
133+
echo "ar = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar\"" >> .cargo/config.toml
134+
echo "linker = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang\"" >> .cargo/config.toml
135+
echo '' >> .cargo/config.toml
136+
echo '[target.i686-linux-android]' >> .cargo/config.toml
137+
echo "ar = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar\"" >> .cargo/config.toml
138+
echo "linker = \"$ANDROID_NDK_LATEST_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android21-clang\"" >> .cargo/config.toml
127139
- name: Install SQLite for Android
128140
run: |
129141
sudo apt-get update
130142
sudo apt-get install -y libsqlite3-dev
131143
- name: Build for Android
132144
run: |
133145
cargo build --target aarch64-linux-android --release --bin file_classification_cli --verbose
146+
- name: Build for other Android targets
147+
run: |
148+
cargo build --target armv7-linux-androideabi --release --bin file_classification_cli --verbose
149+
cargo build --target x86_64-linux-android --release --bin file_classification_cli --verbose
150+
cargo build --target i686-linux-android --release --bin file_classification_cli --verbose
134151
- name: Set Android binary name
135152
run: echo "ANDROID_BINARY_NAME=file_classification_cli" >> $GITHUB_ENV
136153
- name: Upload Android artifacts
137154
uses: actions/upload-artifact@v4
138155
with:
139-
name: file_classification_cli-android
156+
name: file_classification_cli-android-aarch64
140157
path: target/aarch64-linux-android/release/file_classification_cli
158+
- name: Upload other Android artifacts
159+
uses: actions/upload-artifact@v4
160+
with:
161+
name: file_classification_cli-android-armv7
162+
path: target/armv7-linux-androideabi/release/file_classification_cli
163+
- name: Upload other Android artifacts
164+
uses: actions/upload-artifact@v4
165+
with:
166+
name: file_classification_cli-android-x86_64
167+
path: target/x86_64-linux-android/release/file_classification_cli
168+
- name: Upload other Android artifacts
169+
uses: actions/upload-artifact@v4
170+
with:
171+
name: file_classification_cli-android-i686
172+
path: target/i686-linux-android/release/file_classification_cli
141173

142174
build-linux:
143175
name: Build Linux binaries
@@ -258,7 +290,7 @@ jobs:
258290
run: |
259291
cargo build --target ${{ matrix.target }} --release --bin file_classification_webapi --verbose
260292
- name: Set binary name
261-
run: echo "BINARY_NAME=file_classification_cli.exe" >> $env:GITHUB_ENV
293+
run: echo "BINARY_NAME=file_classification_cli.exe" >> $GITHUB_ENV
262294
- name: Upload CLI artifacts
263295
uses: actions/upload-artifact@v4
264296
with:
@@ -353,4 +385,7 @@ jobs:
353385
artifacts/file_classification_cli-aarch64-apple-darwin/file_classification_cli
354386
artifacts/file_classification_webapi-x86_64-apple-darwin/file_classification_webapi
355387
artifacts/file_classification_webapi-aarch64-apple-darwin/file_classification_webapi
356-
artifacts/file_classification_cli-android/file_classification_cli
388+
artifacts/file_classification_cli-android-aarch64/file_classification_cli
389+
artifacts/file_classification_cli-android-armv7/file_classification_cli
390+
artifacts/file_classification_cli-android-x86_64/file_classification_cli
391+
artifacts/file_classification_cli-android-i686/file_classification_cli

0 commit comments

Comments
 (0)