fix5
Build RustDesk Android / Build RustDesk Android ARM64 (push) Failing after 1m0s

This commit is contained in:
2026-09-13 16:06:05 +03:00
parent ccb951c9a1
commit be687706b0
+106 -137
View File
@@ -630,6 +630,50 @@ jobs:
# tag itself. The bridge checkout is disposable and separate.
# -----------------------------------------------------------------------
- name: Build Android native dependencies
shell: bash
run: |
set -euxo pipefail
cd rustdesk
echo "VCPKG_ROOT=${VCPKG_ROOT}"
echo "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}"
if ! ./flutter/build_android_deps.sh "${ANDROID_ABI}"; then
echo
echo "Android dependency build failed."
echo "Dumping vcpkg logs:"
echo
find "${VCPKG_ROOT}" \
-name "*.log" \
-type f \
| while read -r logfile; do
echo "===== ${logfile} ====="
cat "${logfile}" || true
echo
done
exit 1
fi
test -d \
"${VCPKG_ROOT}/installed/arm64-android"
# -----------------------------------------------------------------------
# Build Rust native Android library.
# -----------------------------------------------------------------------
# -----------------------------------------------------------------------
# Permanent Android release signing.
#
# Required Gitea Actions secrets:
# ANDROID_KEYSTORE_BASE64
# ANDROID_KEYSTORE_PASSWORD
# ANDROID_KEY_ALIAS
# -----------------------------------------------------------------------
- name: Generate Flutter Rust bridge
shell: bash
run: |
@@ -834,17 +878,68 @@ jobs:
echo
echo "Flutter Rust bridge generated successfully"
- name: Upload generated bridge
uses: actions/upload-artifact@v7
with:
name: rustdesk-android-bridge-${{ env.RUSTDESK_VERSION }}
path: |
rustdesk-bridge/src/bridge_generated.rs
rustdesk-bridge/src/bridge_generated.io.rs
rustdesk-bridge/flutter/lib/generated_bridge.dart
rustdesk-bridge/flutter/lib/generated_bridge.freezed.dart
if-no-files-found: error
retention-days: 1
# IMPORTANT:
# Keep the native Rust build in this SAME run step. On this Gitea
# Docker runner, generated/untracked files are not reliably visible
# after crossing a run/uses step boundary.
cd ../rustdesk
echo
echo "Copying generated bridge into main checkout..."
cp \
../rustdesk-bridge/src/bridge_generated.rs \
src/bridge_generated.rs
cp \
../rustdesk-bridge/src/bridge_generated.io.rs \
src/bridge_generated.io.rs
cp \
../rustdesk-bridge/flutter/lib/generated_bridge.dart \
flutter/lib/generated_bridge.dart
cp \
../rustdesk-bridge/flutter/lib/generated_bridge.freezed.dart \
flutter/lib/generated_bridge.freezed.dart
test -s src/bridge_generated.rs
test -s src/bridge_generated.io.rs
test -s flutter/lib/generated_bridge.dart
test -s flutter/lib/generated_bridge.freezed.dart
echo
echo "Bridge files immediately before native build:"
ls -lh \
src/bridge_generated.rs \
src/bridge_generated.io.rs \
flutter/lib/generated_bridge.dart \
flutter/lib/generated_bridge.freezed.dart
export RUSTUP_TOOLCHAIN="${RUST_VERSION}"
export PATH="${CARGO_HOME}/bin:${PATH}"
if ! rustup \
target list \
--installed \
--toolchain "${RUST_VERSION}" \
| grep -qx "${RUST_TARGET}"; then
echo "ERROR: ${RUST_TARGET} Rust target is missing"
exit 1
fi
echo
echo "Building RustDesk native Android library..."
./flutter/ndk_arm64.sh
test -f \
"target/${RUST_TARGET}/release/liblibrustdesk.so"
ls -lh \
"target/${RUST_TARGET}/release/liblibrustdesk.so"
# -----------------------------------------------------------------------
# Apply Flutter SDK compatibility patch(es) shipped by the selected tag.
@@ -884,132 +979,6 @@ jobs:
# Android native dependencies.
# -----------------------------------------------------------------------
- name: Build Android native dependencies
shell: bash
run: |
set -euxo pipefail
cd rustdesk
echo "VCPKG_ROOT=${VCPKG_ROOT}"
echo "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}"
if ! ./flutter/build_android_deps.sh "${ANDROID_ABI}"; then
echo
echo "Android dependency build failed."
echo "Dumping vcpkg logs:"
echo
find "${VCPKG_ROOT}" \
-name "*.log" \
-type f \
| while read -r logfile; do
echo "===== ${logfile} ====="
cat "${logfile}" || true
echo
done
exit 1
fi
test -d \
"${VCPKG_ROOT}/installed/arm64-android"
# -----------------------------------------------------------------------
# Restore generated bridge from Actions artifact.
#
# Using an artifact here avoids relying on filesystem persistence
# between run steps in the Gitea Docker runner.
# -----------------------------------------------------------------------
- name: Download generated bridge
uses: actions/download-artifact@v8
with:
name: rustdesk-android-bridge-${{ env.RUSTDESK_VERSION }}
path: bridge-download
# -----------------------------------------------------------------------
# Build Rust native Android library.
# -----------------------------------------------------------------------
- name: Build RustDesk native library
shell: bash
run: |
set -euxo pipefail
export RUSTUP_TOOLCHAIN="${RUST_VERSION}"
cd rustdesk
if ! rustup \
target list \
--installed \
--toolchain "${RUST_VERSION}" \
| grep -qx "${RUST_TARGET}"; then
echo "ERROR: ${RUST_TARGET} Rust target is missing"
exit 1
fi
echo
echo "Restoring generated Flutter/Rust bridge before native build..."
test -f ../bridge-download/src/bridge_generated.rs
test -f ../bridge-download/src/bridge_generated.io.rs
test -f ../bridge-download/flutter/lib/generated_bridge.dart
test -f ../bridge-download/flutter/lib/generated_bridge.freezed.dart
cp \
../bridge-download/src/bridge_generated.rs \
src/bridge_generated.rs
cp \
../bridge-download/src/bridge_generated.io.rs \
src/bridge_generated.io.rs
cp \
../bridge-download/flutter/lib/generated_bridge.dart \
flutter/lib/generated_bridge.dart
cp \
../bridge-download/flutter/lib/generated_bridge.freezed.dart \
flutter/lib/generated_bridge.freezed.dart
test -s src/bridge_generated.rs
test -s src/bridge_generated.io.rs
test -s flutter/lib/generated_bridge.dart
test -s flutter/lib/generated_bridge.freezed.dart
echo "Bridge files immediately before cargo ndk:"
ls -lh \
src/bridge_generated.rs \
src/bridge_generated.io.rs \
flutter/lib/generated_bridge.dart \
flutter/lib/generated_bridge.freezed.dart
sha256sum \
src/bridge_generated.rs \
src/bridge_generated.io.rs \
flutter/lib/generated_bridge.dart \
flutter/lib/generated_bridge.freezed.dart
./flutter/ndk_arm64.sh
test -f \
"target/${RUST_TARGET}/release/liblibrustdesk.so"
ls -lh \
"target/${RUST_TARGET}/release/liblibrustdesk.so"
# -----------------------------------------------------------------------
# Permanent Android release signing.
#
# Required Gitea Actions secrets:
# ANDROID_KEYSTORE_BASE64
# ANDROID_KEYSTORE_PASSWORD
# ANDROID_KEY_ALIAS
# -----------------------------------------------------------------------
- name: Configure Android release signing
shell: bash
env: