move to prebuild docker image
Build RustDesk Android / Build RustDesk Android ARM64 (push) Successful in 13m13s
Build RustDesk Android / Build RustDesk Android ARM64 (push) Successful in 13m13s
This commit is contained in:
+117
-318
@@ -10,71 +10,63 @@ on:
|
||||
|
||||
env:
|
||||
RUSTDESK_VERSION: "1.4.9"
|
||||
|
||||
RUST_VERSION: "1.75"
|
||||
CARGO_NDK_VERSION: "3.1.2"
|
||||
|
||||
CARGO_EXPAND_VERSION: "1.0.95"
|
||||
FLUTTER_RUST_BRIDGE_VERSION: "1.80.1"
|
||||
|
||||
BRIDGE_FLUTTER_VERSION: "3.22.3"
|
||||
ANDROID_FLUTTER_VERSION: "3.24.5"
|
||||
|
||||
ANDROID_NDK_VERSION: "28.2.13676358"
|
||||
|
||||
VCPKG_COMMIT_ID: "120deac3062162151622ca4860575a33844ba10b"
|
||||
ANDROID_BUILD_TOOLS_VERSION: "34.0.0"
|
||||
|
||||
jobs:
|
||||
build-android:
|
||||
name: Build RustDesk Android ARM64
|
||||
runs-on: ubuntu-24.04
|
||||
runs-on: rustdesk-android
|
||||
|
||||
steps:
|
||||
# -----------------------------------------------------------------------
|
||||
# System dependencies
|
||||
# Verify prebuilt builder image
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install system dependencies
|
||||
- name: Verify builder environment
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
sudo apt-get update
|
||||
echo "=== Java ==="
|
||||
java -version
|
||||
|
||||
sudo apt-get install -y \
|
||||
ca-certificates \
|
||||
clang \
|
||||
cmake \
|
||||
curl \
|
||||
gcc \
|
||||
gcc-multilib \
|
||||
g++ \
|
||||
g++-multilib \
|
||||
git \
|
||||
libayatana-appindicator3-dev \
|
||||
libasound2-dev \
|
||||
libc6-dev \
|
||||
libclang-dev \
|
||||
libunwind-dev \
|
||||
libgstreamer1.0-dev \
|
||||
libgstreamer-plugins-base1.0-dev \
|
||||
libgtk-3-dev \
|
||||
libpam0g-dev \
|
||||
libpulse-dev \
|
||||
libva-dev \
|
||||
libxcb-randr0-dev \
|
||||
libxcb-shape0-dev \
|
||||
libxcb-xfixes0-dev \
|
||||
libxdo-dev \
|
||||
libxfixes-dev \
|
||||
llvm-dev \
|
||||
nasm \
|
||||
ninja-build \
|
||||
openjdk-17-jdk-headless \
|
||||
pkg-config \
|
||||
tree \
|
||||
unzip \
|
||||
wget \
|
||||
xz-utils
|
||||
echo
|
||||
echo "=== Rust ==="
|
||||
rustc --version
|
||||
cargo --version
|
||||
rustup target list --installed
|
||||
|
||||
echo
|
||||
echo "=== Cargo tools ==="
|
||||
cargo ndk --version
|
||||
cargo expand --version
|
||||
flutter_rust_bridge_codegen --version
|
||||
|
||||
echo
|
||||
echo "=== Android SDK / NDK ==="
|
||||
echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}"
|
||||
echo "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}"
|
||||
sdkmanager --version
|
||||
test -d "${ANDROID_NDK_HOME}"
|
||||
test -x "${ANDROID_SDK_ROOT}/build-tools/${ANDROID_BUILD_TOOLS_VERSION}/apksigner"
|
||||
|
||||
echo
|
||||
echo "=== Flutter bridge ==="
|
||||
test -x "${FLUTTER_BRIDGE_HOME}/bin/flutter"
|
||||
"${FLUTTER_BRIDGE_HOME}/bin/flutter" --version
|
||||
|
||||
echo
|
||||
echo "=== Flutter Android ==="
|
||||
test -x "${FLUTTER_ANDROID_HOME}/bin/flutter"
|
||||
"${FLUTTER_ANDROID_HOME}/bin/flutter" --version
|
||||
|
||||
echo
|
||||
echo "=== vcpkg ==="
|
||||
test -x "${VCPKG_ROOT}/vcpkg"
|
||||
"${VCPKG_ROOT}/vcpkg" version
|
||||
test -d "${VCPKG_ROOT}/installed/arm64-android"
|
||||
|
||||
echo
|
||||
echo "Builder environment OK"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# RustDesk source
|
||||
@@ -84,6 +76,8 @@ jobs:
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
rm -rf rustdesk
|
||||
|
||||
git clone \
|
||||
--branch "${RUSTDESK_VERSION}" \
|
||||
--depth 1 \
|
||||
@@ -97,6 +91,7 @@ jobs:
|
||||
echo "RustDesk commit:"
|
||||
git rev-parse HEAD
|
||||
|
||||
echo
|
||||
echo "RustDesk tag:"
|
||||
git describe --tags --always
|
||||
|
||||
@@ -106,7 +101,6 @@ jobs:
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Custom RustDesk ID server + public key
|
||||
#
|
||||
# Relay is NOT modified.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
@@ -130,6 +124,7 @@ jobs:
|
||||
cd rustdesk
|
||||
|
||||
python3 <<'PY'
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
from pathlib import Path
|
||||
@@ -153,16 +148,21 @@ jobs:
|
||||
if not server_key:
|
||||
raise SystemExit("RUSTDESK_KEY is empty")
|
||||
|
||||
# json.dumps() produces a correctly escaped quoted string which is
|
||||
# also valid as a Rust string literal for these values.
|
||||
id_server_literal = json.dumps(id_server)
|
||||
server_key_literal = json.dumps(server_key)
|
||||
|
||||
text, id_count = re.subn(
|
||||
r'pub const RENDEZVOUS_SERVERS:\s*&\[&str\]\s*=\s*&\[[^\n]*\];',
|
||||
f'pub const RENDEZVOUS_SERVERS: &[&str] = &["{id_server}"];',
|
||||
f'pub const RENDEZVOUS_SERVERS: &[&str] = &[{id_server_literal}];',
|
||||
text,
|
||||
count=1,
|
||||
)
|
||||
|
||||
text, key_count = re.subn(
|
||||
r'pub const RS_PUB_KEY:\s*&str\s*=\s*"[^"]*";',
|
||||
f'pub const RS_PUB_KEY: &str = "{server_key}";',
|
||||
f'pub const RS_PUB_KEY: &str = {server_key_literal};',
|
||||
text,
|
||||
count=1,
|
||||
)
|
||||
@@ -193,14 +193,12 @@ jobs:
|
||||
|
||||
if grep -q 'rs-ny\.rustdesk\.com' \
|
||||
libs/hbb_common/src/config.rs; then
|
||||
|
||||
echo "ERROR: Default RustDesk ID server is still present"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -q 'pub const RS_PUB_KEY' \
|
||||
libs/hbb_common/src/config.rs; then
|
||||
|
||||
echo "ERROR: RS_PUB_KEY was not found"
|
||||
exit 1
|
||||
fi
|
||||
@@ -209,149 +207,39 @@ jobs:
|
||||
echo "Relay configuration untouched: yes"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Rust
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install Rust
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
curl \
|
||||
--proto '=https' \
|
||||
--tlsv1.2 \
|
||||
-sSf \
|
||||
https://sh.rustup.rs \
|
||||
| sh -s -- \
|
||||
-y \
|
||||
--default-toolchain "${RUST_VERSION}"
|
||||
|
||||
source "${HOME}/.cargo/env"
|
||||
|
||||
rustc --version
|
||||
cargo --version
|
||||
|
||||
rustup target add aarch64-linux-android
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Android SDK + NDK
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install Android SDK
|
||||
uses: android-actions/setup-android@v3
|
||||
|
||||
- name: Install Android packages
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
yes | sdkmanager --licenses >/dev/null || true
|
||||
|
||||
sdkmanager \
|
||||
"platform-tools" \
|
||||
"platforms;android-34" \
|
||||
"build-tools;34.0.0" \
|
||||
"ndk;${ANDROID_NDK_VERSION}"
|
||||
|
||||
echo \
|
||||
"ANDROID_NDK_HOME=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}" \
|
||||
>> "${GITHUB_ENV}"
|
||||
|
||||
echo \
|
||||
"ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}" \
|
||||
>> "${GITHUB_ENV}"
|
||||
|
||||
echo \
|
||||
"ANDROID_NDK=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}" \
|
||||
>> "${GITHUB_ENV}"
|
||||
|
||||
echo "Android SDK:"
|
||||
echo "${ANDROID_SDK_ROOT}"
|
||||
|
||||
echo
|
||||
echo "Android NDK:"
|
||||
ls -la \
|
||||
"${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}"
|
||||
|
||||
echo
|
||||
echo "Android build tools:"
|
||||
ls -la \
|
||||
"${ANDROID_SDK_ROOT}/build-tools/34.0.0"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Flutter 3.22.3 for flutter-rust-bridge generation
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install Flutter for bridge generation
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
mkdir -p "${HOME}/flutter-sdks"
|
||||
|
||||
curl \
|
||||
-L \
|
||||
"https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${BRIDGE_FLUTTER_VERSION}-stable.tar.xz" \
|
||||
-o /tmp/flutter-bridge.tar.xz
|
||||
|
||||
tar \
|
||||
-xf /tmp/flutter-bridge.tar.xz \
|
||||
-C "${HOME}/flutter-sdks"
|
||||
|
||||
mv \
|
||||
"${HOME}/flutter-sdks/flutter" \
|
||||
"${HOME}/flutter-sdks/flutter-${BRIDGE_FLUTTER_VERSION}"
|
||||
|
||||
"${HOME}/flutter-sdks/flutter-${BRIDGE_FLUTTER_VERSION}/bin/flutter" \
|
||||
config \
|
||||
--no-analytics
|
||||
|
||||
"${HOME}/flutter-sdks/flutter-${BRIDGE_FLUTTER_VERSION}/bin/flutter" \
|
||||
--version
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Generate Flutter/Rust bridge
|
||||
# Generate Flutter/Rust bridge with Flutter 3.22.3.
|
||||
#
|
||||
# RustDesk 1.4.9 temporarily needs extended_text 13.0.0 for this stage.
|
||||
# We restore 14.0.0 immediately afterwards for the Android build.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Generate Flutter Rust bridge
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
source "${HOME}/.cargo/env"
|
||||
export PATH="${FLUTTER_BRIDGE_HOME}/bin:${CARGO_HOME}/bin:${PATH}"
|
||||
|
||||
export PATH="${HOME}/flutter-sdks/flutter-${BRIDGE_FLUTTER_VERSION}/bin:${PATH}"
|
||||
|
||||
cargo install \
|
||||
cargo-expand \
|
||||
--version "${CARGO_EXPAND_VERSION}" \
|
||||
--locked
|
||||
|
||||
cargo install \
|
||||
flutter_rust_bridge_codegen \
|
||||
--version "${FLUTTER_RUST_BRIDGE_VERSION}" \
|
||||
--features uuid \
|
||||
--locked
|
||||
echo "Bridge Flutter:"
|
||||
flutter --version
|
||||
|
||||
cd rustdesk
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# Flutter 3.22.3 cannot resolve extended_text 14.0.0.
|
||||
#
|
||||
# Upstream RustDesk downgrades it to 13.0.0 ONLY while generating
|
||||
# flutter-rust-bridge files.
|
||||
#
|
||||
# Android itself is built with Flutter 3.24.5 and MUST use
|
||||
# extended_text 14.0.0.
|
||||
# -------------------------------------------------------------------
|
||||
if ! grep -q 'extended_text: 14.0.0' flutter/pubspec.yaml; then
|
||||
echo "ERROR: Expected extended_text 14.0.0 before bridge generation"
|
||||
grep -n "extended_text:" flutter/pubspec.yaml || true
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sed -i \
|
||||
's/extended_text: 14.0.0/extended_text: 13.0.0/g' \
|
||||
flutter/pubspec.yaml
|
||||
|
||||
echo
|
||||
echo "Bridge dependency:"
|
||||
grep -n "extended_text:" flutter/pubspec.yaml
|
||||
|
||||
pushd flutter
|
||||
|
||||
flutter pub get
|
||||
|
||||
popd
|
||||
|
||||
flutter_rust_bridge_codegen \
|
||||
@@ -370,15 +258,9 @@ jobs:
|
||||
test -f flutter/macos/Runner/bridge_generated.h
|
||||
test -f flutter/ios/Runner/bridge_generated.h
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# IMPORTANT:
|
||||
# Restore original RustDesk Flutter dependencies after bridge
|
||||
# generation.
|
||||
#
|
||||
# This reproduces upstream RustDesk CI behaviour where bridge and
|
||||
# Android builds run in separate jobs/checkouts.
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# Restore the original Android dependency versions. Upstream performs
|
||||
# bridge and Android builds from separate checkouts; we reproduce that
|
||||
# behaviour inside one job.
|
||||
git checkout -- \
|
||||
flutter/pubspec.yaml \
|
||||
flutter/pubspec.lock
|
||||
@@ -396,105 +278,31 @@ jobs:
|
||||
|
||||
echo
|
||||
echo "Flutter Rust bridge generated successfully"
|
||||
echo "extended_text restored to 14.0.0 for Android build"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Flutter 3.24.5 for Android build
|
||||
# Android native dependencies.
|
||||
#
|
||||
# They are prebuilt in rustdesk-android-builder:1.4.9-r1. Running the
|
||||
# upstream manifest command here verifies the exact RustDesk 1.4.9 state
|
||||
# and should reuse /opt/vcpkg/installed/arm64-android.
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install Android Flutter
|
||||
- name: Verify Android native dependencies
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
curl \
|
||||
-L \
|
||||
"https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${ANDROID_FLUTTER_VERSION}-stable.tar.xz" \
|
||||
-o /tmp/flutter-android.tar.xz
|
||||
|
||||
tar \
|
||||
-xf /tmp/flutter-android.tar.xz \
|
||||
-C "${HOME}/flutter-sdks"
|
||||
|
||||
mv \
|
||||
"${HOME}/flutter-sdks/flutter" \
|
||||
"${HOME}/flutter-sdks/flutter-${ANDROID_FLUTTER_VERSION}"
|
||||
|
||||
export PATH="${HOME}/flutter-sdks/flutter-${ANDROID_FLUTTER_VERSION}/bin:${PATH}"
|
||||
|
||||
flutter config \
|
||||
--no-analytics
|
||||
|
||||
flutter config \
|
||||
--android-sdk "${ANDROID_SDK_ROOT}"
|
||||
|
||||
flutter --version
|
||||
|
||||
flutter doctor -v || true
|
||||
|
||||
cd \
|
||||
"${HOME}/flutter-sdks/flutter-${ANDROID_FLUTTER_VERSION}"
|
||||
|
||||
git apply \
|
||||
"${GITHUB_WORKSPACE}/rustdesk/.github/patches/flutter_3.24.4_dropdown_menu_enableFilter.diff"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# vcpkg
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Install vcpkg
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
sudo rm -rf /opt/vcpkg
|
||||
|
||||
sudo git clone \
|
||||
https://github.com/microsoft/vcpkg.git \
|
||||
/opt/vcpkg
|
||||
|
||||
sudo git \
|
||||
-C /opt/vcpkg \
|
||||
checkout "${VCPKG_COMMIT_ID}"
|
||||
|
||||
sudo chown \
|
||||
-R "$(id -u):$(id -g)" \
|
||||
/opt/vcpkg
|
||||
|
||||
/opt/vcpkg/bootstrap-vcpkg.sh \
|
||||
-disableMetrics
|
||||
|
||||
echo \
|
||||
"VCPKG_ROOT=/opt/vcpkg" \
|
||||
>> "${GITHUB_ENV}"
|
||||
|
||||
/opt/vcpkg/vcpkg version
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Android native dependencies
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Build Android dependencies
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
source "${HOME}/.cargo/env"
|
||||
|
||||
export PATH="${HOME}/flutter-sdks/flutter-${ANDROID_FLUTTER_VERSION}/bin:${PATH}"
|
||||
|
||||
export VCPKG_ROOT=/opt/vcpkg
|
||||
|
||||
export ANDROID_NDK_HOME="${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}"
|
||||
export ANDROID_NDK_ROOT="${ANDROID_NDK_HOME}"
|
||||
export ANDROID_NDK="${ANDROID_NDK_HOME}"
|
||||
|
||||
cd rustdesk
|
||||
|
||||
echo "VCPKG_ROOT=${VCPKG_ROOT}"
|
||||
echo "ANDROID_NDK_HOME=${ANDROID_NDK_HOME}"
|
||||
|
||||
if ! ./flutter/build_android_deps.sh arm64-v8a; then
|
||||
echo
|
||||
echo "Android dependency build failed."
|
||||
echo "Android dependency verification/build failed."
|
||||
echo "Dumping vcpkg logs:"
|
||||
echo
|
||||
|
||||
find "${VCPKG_ROOT}/" \
|
||||
find "${VCPKG_ROOT}" \
|
||||
-name "*.log" \
|
||||
-type f \
|
||||
| while read -r logfile; do
|
||||
@@ -506,32 +314,30 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test -d "${VCPKG_ROOT}/installed/arm64-android"
|
||||
|
||||
echo
|
||||
echo "Android native dependencies OK"
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Rust native Android library
|
||||
# Build Rust native Android library
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Build RustDesk native library
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
source "${HOME}/.cargo/env"
|
||||
|
||||
export VCPKG_ROOT=/opt/vcpkg
|
||||
|
||||
export ANDROID_NDK_HOME="${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}"
|
||||
export ANDROID_NDK_ROOT="${ANDROID_NDK_HOME}"
|
||||
export ANDROID_NDK="${ANDROID_NDK_HOME}"
|
||||
|
||||
cargo install \
|
||||
cargo-ndk \
|
||||
--version "${CARGO_NDK_VERSION}" \
|
||||
--locked
|
||||
|
||||
rustup target add \
|
||||
aarch64-linux-android
|
||||
|
||||
cd rustdesk
|
||||
|
||||
rustc --version
|
||||
cargo --version
|
||||
cargo ndk --version
|
||||
|
||||
if ! rustup target list --installed | grep -qx 'aarch64-linux-android'; then
|
||||
echo "ERROR: aarch64-linux-android Rust target is missing from builder image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./flutter/ndk_arm64.sh
|
||||
|
||||
test -f \
|
||||
@@ -545,13 +351,13 @@ jobs:
|
||||
# -----------------------------------------------------------------------
|
||||
# Permanent Android release signing
|
||||
#
|
||||
# key.properties:
|
||||
# flutter/android/key.properties
|
||||
# Required Gitea Actions secrets:
|
||||
# ANDROID_KEYSTORE_BASE64
|
||||
# ANDROID_KEYSTORE_PASSWORD
|
||||
# ANDROID_KEY_ALIAS
|
||||
#
|
||||
# keystore:
|
||||
# flutter/android/app/rustdesk-release.jks
|
||||
#
|
||||
# RustDesk's app/build.gradle resolves storeFile relative to app/.
|
||||
# key.properties: flutter/android/key.properties
|
||||
# keystore: flutter/android/app/rustdesk-release.jks
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Configure Android release signing
|
||||
@@ -585,18 +391,16 @@ jobs:
|
||||
| base64 --decode \
|
||||
> app/rustdesk-release.jks
|
||||
|
||||
chmod 600 \
|
||||
app/rustdesk-release.jks
|
||||
chmod 600 app/rustdesk-release.jks
|
||||
|
||||
cat > key.properties <<EOF
|
||||
cat > key.properties <<EOF2
|
||||
storePassword=${ANDROID_KEYSTORE_PASSWORD}
|
||||
keyPassword=${ANDROID_KEYSTORE_PASSWORD}
|
||||
keyAlias=${ANDROID_KEY_ALIAS}
|
||||
storeFile=rustdesk-release.jks
|
||||
EOF
|
||||
EOF2
|
||||
|
||||
chmod 600 \
|
||||
key.properties
|
||||
chmod 600 key.properties
|
||||
|
||||
if [ ! -s app/rustdesk-release.jks ]; then
|
||||
echo "ERROR: Restored keystore is empty"
|
||||
@@ -616,25 +420,17 @@ jobs:
|
||||
echo "Android release signing configured successfully."
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Flutter Android APK
|
||||
# Build signed ARM64 APK with Flutter 3.24.5 from builder image
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
- name: Build signed APK
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
|
||||
source "${HOME}/.cargo/env"
|
||||
export PATH="${FLUTTER_ANDROID_HOME}/bin:${CARGO_HOME}/bin:${PATH}"
|
||||
|
||||
export PATH="${HOME}/flutter-sdks/flutter-${ANDROID_FLUTTER_VERSION}/bin:${PATH}"
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
export PATH="${JAVA_HOME}/bin:${PATH}"
|
||||
|
||||
export VCPKG_ROOT=/opt/vcpkg
|
||||
|
||||
export ANDROID_NDK_HOME="${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION}"
|
||||
export ANDROID_NDK_ROOT="${ANDROID_NDK_HOME}"
|
||||
export ANDROID_NDK="${ANDROID_NDK_HOME}"
|
||||
echo "Android Flutter:"
|
||||
flutter --version
|
||||
|
||||
cd rustdesk
|
||||
|
||||
@@ -666,6 +462,7 @@ jobs:
|
||||
|
||||
pushd flutter
|
||||
|
||||
echo
|
||||
echo "Checking Android Flutter dependencies..."
|
||||
|
||||
if ! grep -q 'extended_text: 14.0.0' pubspec.yaml; then
|
||||
@@ -675,9 +472,12 @@ jobs:
|
||||
fi
|
||||
|
||||
flutter clean
|
||||
|
||||
flutter pub get
|
||||
|
||||
echo
|
||||
echo "Resolved extended_text:"
|
||||
flutter pub deps | grep -A2 -B2 extended_text || true
|
||||
|
||||
flutter build apk \
|
||||
--release \
|
||||
--target-platform android-arm64 \
|
||||
@@ -713,8 +513,7 @@ jobs:
|
||||
set -euxo pipefail
|
||||
|
||||
APK="rustdesk/output/rustdesk-${RUSTDESK_VERSION}-custom-arm64.apk"
|
||||
|
||||
APKSIGNER="${ANDROID_SDK_ROOT}/build-tools/34.0.0/apksigner"
|
||||
APKSIGNER="${ANDROID_SDK_ROOT}/build-tools/${ANDROID_BUILD_TOOLS_VERSION}/apksigner"
|
||||
|
||||
if [ ! -x "${APKSIGNER}" ]; then
|
||||
echo "ERROR: apksigner not found:"
|
||||
|
||||
Reference in New Issue
Block a user