This commit is contained in:
+106
-137
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user