Files
openless/openless-all/app/scripts/run-android-tauri-build.mjs
06db7d2978 chore(release): integrate reviewed changes for Beta 3 build 20260925
Integrate Android CI acceleration, modifier-only dictation chords,
Requesty, and remote-input generation guards over the verified Beta 2
baseline and macOS CI improvements. Fix review findings in signing
configuration caching, APK validation, and modifier arbitration/recording.
Keep Linux egui and its release workflows identical to Beta 2.

Co-authored-by: HKLHaoBin <we3q@qq.com>
Co-authored-by: leolulu <35873316+leolulu@users.noreply.github.com>
Co-authored-by: Thibault Jaigu <thibault.jaigu@gmail.com>
Co-authored-by: Ethan <257484394+EthanYoQ@users.noreply.github.com>
2026-09-25 23:52:47 +08:00

57 lines
1.8 KiB
JavaScript

/**
* Run `tauri android build` with ABI targets from OPENLESS_ANDROID_TARGETS
* (space/comma-separated CLI names: aarch64 armv7 i686 x86_64).
*
* Usage:
* node scripts/run-android-tauri-build.mjs --debug
* node scripts/run-android-tauri-build.mjs --release
*/
import { spawnSync } from 'node:child_process';
import process from 'node:process';
import { parseAndroidAbis, ANDROID_ABI_MATRIX } from './android-abi-matrix.mjs';
function resolveTargets() {
const raw = process.env.OPENLESS_ANDROID_TARGETS ?? '';
if (!raw.trim()) {
return ANDROID_ABI_MATRIX.map((e) => e.abi);
}
return parseAndroidAbis(raw, {
defaultAbis: ANDROID_ABI_MATRIX.map((e) => e.abi),
}).map((e) => e.abi);
}
function main() {
const mode = process.argv[2];
if (mode !== '--debug' && mode !== '--release') {
console.error('Usage: node scripts/run-android-tauri-build.mjs --debug|--release');
process.exit(1);
}
const targets = resolveTargets();
const args = ['tauri', 'android', 'build', '--apk', '--split-per-abi', '--target', ...targets];
if (mode === '--debug') {
args.push('--debug');
}
console.log(`[android-build] targets=${targets.join(',')} mode=${mode.slice(2)}`);
// #1103: Tauri CLI runs an initial cargo build for the first target to
// "initialize plugins", then Gradle invokes `android-studio-script` per ABI
// (including the first). Expect two cargo passes for the first ABI; do not
// bypass the Gradle/native path.
console.log(
'[android-build] note: first ABI may compile twice (Tauri plugin init + android-studio-script)',
);
const bin = process.platform === 'win32' ? 'npx.cmd' : 'npx';
const result = spawnSync(bin, args, {
stdio: 'inherit',
env: process.env,
shell: process.platform === 'win32',
});
if (result.error) {
throw result.error;
}
process.exit(result.status ?? 1);
}
main();