ci: 统一 Android APK 产物命名

This commit is contained in:
mofeng-git
2026-05-24 12:00:06 +00:00
parent 87d1110a87
commit 4a85fbfab8
4 changed files with 19 additions and 5 deletions

View File

@@ -252,7 +252,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: one-kvm-android-apk name: one-kvm-android-apk
path: target/android/*.apk path: target/android/one-kvm_*.apk
if-no-files-found: error if-no-files-found: error
retention-days: 7 retention-days: 7

View File

@@ -39,6 +39,11 @@ val androidBuildProfile = providers.environmentVariable("ONE_KVM_ANDROID_PROFILE
.orElse("debug") .orElse("debug")
.get() .get()
.lowercase() .lowercase()
val oneKvmVersion = Regex("""(?m)^version\s*=\s*"([^"]+)"""")
.find(rootCrateDir.file("Cargo.toml").asFile.readText())
?.groupValues
?.get(1)
?: throw GradleException("Failed to resolve version from root Cargo.toml")
val androidFfmpegSourceDir = rootProject.layout.projectDirectory val androidFfmpegSourceDir = rootProject.layout.projectDirectory
.dir("../.tmp/android-ffmpeg-check/src/ffmpeg-rockchip") .dir("../.tmp/android-ffmpeg-check/src/ffmpeg-rockchip")
val localProperties = Properties().apply { val localProperties = Properties().apply {
@@ -163,7 +168,7 @@ android {
minSdk = androidApiLevel minSdk = androidApiLevel
targetSdk = 36 targetSdk = 36
versionCode = 1 versionCode = 1
versionName = "0.1.0" versionName = oneKvmVersion
} }
productFlavors { productFlavors {

View File

@@ -108,7 +108,7 @@ Environment:
ONE_KVM_ANDROID_SKIP_DOCKER_BUILD=1 Reuse an already loaded Docker image ONE_KVM_ANDROID_SKIP_DOCKER_BUILD=1 Reuse an already loaded Docker image
APK output: APK output:
target/android/ target/android/one-kvm_<version>_<arm32|arm64>.apk
EOF EOF
;; ;;
*) *)

View File

@@ -151,7 +151,7 @@ RUN printf '%s\n' \
' help Show this help.' \ ' help Show this help.' \
'' \ '' \
'APK output:' \ 'APK output:' \
' target/android/' \ ' target/android/one-kvm_<version>_<arm32|arm64>.apk' \
'EOF' \ 'EOF' \
'}' \ '}' \
'' \ '' \
@@ -160,6 +160,13 @@ RUN printf '%s\n' \
' exit 1' \ ' exit 1' \
'}' \ '}' \
'' \ '' \
'read_project_version() {' \
' local version' \
' version="$(awk -F "\"" '"'"'/^version[[:space:]]*=/ { print $2; exit }'"'"' "$PROJECT_ROOT/Cargo.toml")"' \
' [[ -n "$version" ]] || fail "Failed to resolve version from $PROJECT_ROOT/Cargo.toml"' \
' printf "%s\n" "$version"' \
'}' \
'' \
'copy_apks() {' \ 'copy_apks() {' \
' local flavor="$1"' \ ' local flavor="$1"' \
' local src_dir="$ANDROID_DIR/app/build/outputs/apk/$flavor/$BUILD_TYPE"' \ ' local src_dir="$ANDROID_DIR/app/build/outputs/apk/$flavor/$BUILD_TYPE"' \
@@ -167,7 +174,7 @@ RUN printf '%s\n' \
' mkdir -p "$OUTPUT_DIR"' \ ' mkdir -p "$OUTPUT_DIR"' \
' for apk in "$src_dir"/*.apk; do' \ ' for apk in "$src_dir"/*.apk; do' \
' [[ -f "$apk" ]] || continue' \ ' [[ -f "$apk" ]] || continue' \
' sign_apk "$apk" "$OUTPUT_DIR/$(basename "${apk/-unsigned.apk/.apk}")"' \ ' sign_apk "$apk" "$OUTPUT_DIR/one-kvm_${PROJECT_VERSION}_${flavor}.apk"' \
' found=1' \ ' found=1' \
' done' \ ' done' \
' [[ "$found" == "1" ]] || fail "No APK files found in: $src_dir"' \ ' [[ "$found" == "1" ]] || fail "No APK files found in: $src_dir"' \
@@ -257,6 +264,7 @@ RUN printf '%s\n' \
'' \ '' \
'printf "sdk.dir=%s\n" "$ANDROID_HOME" > "$ANDROID_DIR/local.properties"' \ 'printf "sdk.dir=%s\n" "$ANDROID_HOME" > "$ANDROID_DIR/local.properties"' \
'mkdir -p "$OUTPUT_DIR"' \ 'mkdir -p "$OUTPUT_DIR"' \
'PROJECT_VERSION="$(read_project_version)"' \
'' \ '' \
'export ONE_KVM_ANDROID_PROFILE="$BUILD_TYPE"' \ 'export ONE_KVM_ANDROID_PROFILE="$BUILD_TYPE"' \
'export ONE_KVM_ANDROID_ABIS="$ANDROID_ABIS"' \ 'export ONE_KVM_ANDROID_ABIS="$ANDROID_ABIS"' \
@@ -269,6 +277,7 @@ RUN printf '%s\n' \
'echo "Building Android APK"' \ 'echo "Building Android APK"' \
'echo " task: $GRADLE_TASK"' \ 'echo " task: $GRADLE_TASK"' \
'echo " profile: $ONE_KVM_ANDROID_PROFILE"' \ 'echo " profile: $ONE_KVM_ANDROID_PROFILE"' \
'echo " version: $PROJECT_VERSION"' \
'echo " abis: $ONE_KVM_ANDROID_ABIS"' \ 'echo " abis: $ONE_KVM_ANDROID_ABIS"' \
'echo " output: $OUTPUT_DIR"' \ 'echo " output: $OUTPUT_DIR"' \
'echo " sdk: $ANDROID_HOME"' \ 'echo " sdk: $ANDROID_HOME"' \