Compare commits
3 Commits
build-test
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 58e0fd14f3 | |||
| 57c9f114ba | |||
| a96e6d7269 |
0
.cargo/config.toml
Normal file → Executable file
0
.gitattributes
vendored
Normal file → Executable file
0
.gitea/FUNDING.yml
Normal file → Executable file
0
.gitea/ISSUE_TEMPLATE/bug_report.yaml
Normal file → Executable file
0
.gitea/ISSUE_TEMPLATE/config.yml
Normal file → Executable file
0
.gitea/ISSUE_TEMPLATE/task.yaml
Normal file → Executable file
0
.gitea/workflows-backup/bridge.yml
Normal file → Executable file
0
.gitea/workflows-backup/ci.yml
Normal file → Executable file
0
.gitea/workflows-backup/flutter-ci.yml
Normal file → Executable file
0
.gitea/workflows-backup/flutter-nightly.yml
Normal file → Executable file
0
.gitea/workflows-backup/flutter-tag.yml
Normal file → Executable file
0
.gitea/workflows-backup/history.yml
Normal file → Executable file
0
.gitea/workflows-backup/vcpkg-deps-linux.yml
Normal file → Executable file
0
.gitea/workflows-backup/winget.yml
Normal file → Executable file
@@ -1,76 +0,0 @@
|
||||
name: Build flutter-rust-bridge
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.10.6"
|
||||
FLUTTER_RUST_BRIDGE_VERSION: "1.75.3"
|
||||
|
||||
jobs:
|
||||
generate_bridge:
|
||||
runs-on: [self-hosted, Linux, Ubuntu]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job:
|
||||
- {
|
||||
target: x86_64-unknown-linux-gnu,
|
||||
os: ubuntu-20.04,
|
||||
extra-build-args: "",
|
||||
}
|
||||
steps:
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install prerequisites
|
||||
run: |
|
||||
sudo apt install ca-certificates -y
|
||||
sudo apt update -y
|
||||
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
target: ${{ matrix.job.target }}
|
||||
override: true
|
||||
profile: minimal # minimal component installation (ie, no documentation)
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
prefix-key: bridge-${{ matrix.job.os }}
|
||||
|
||||
- name: Cache Bridge
|
||||
id: cache-bridge
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /tmp/flutter_rust_bridge
|
||||
key: vcpkg-${{ matrix.job.arch }}
|
||||
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Install flutter rust bridge deps
|
||||
shell: bash
|
||||
run: |
|
||||
cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_VERSION }} --features "uuid"
|
||||
pushd flutter && flutter pub get && popd
|
||||
|
||||
- name: Run flutter rust bridge
|
||||
run: |
|
||||
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: bridge-artifact
|
||||
path: |
|
||||
./src/bridge_generated.rs
|
||||
./src/bridge_generated.io.rs
|
||||
./flutter/lib/generated_bridge.dart
|
||||
./flutter/lib/generated_bridge.freezed.dart
|
||||
@@ -1,180 +0,0 @@
|
||||
name: rustdesk-android-aarch64
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
env:
|
||||
CARGO_NDK_VERSION: "3.1.2"
|
||||
LLVM_VERSION: "15.0.6"
|
||||
FLUTTER_VERSION: "3.10.6"
|
||||
FLUTTER_RUST_BRIDGE_VERSION: "1.75.3"
|
||||
# for arm64 linux
|
||||
FLUTTER_ELINUX_VERSION: "3.10.6"
|
||||
FLUTTER_ELINUX_COMMIT_ID: "410b3ca42f2cd0c485edf517a1666652bab442d4"
|
||||
TAG_NAME: "${{ inputs.upload-tag }}"
|
||||
# vcpkg version: 2023.04.15
|
||||
# for multiarch gcc compatibility
|
||||
VCPKG_COMMIT_ID: "501db0f17ef6df184fcdbfbe0f87cde2313b6ab1"
|
||||
VERSION: "1.2.3"
|
||||
NDK_VERSION: "r25c"
|
||||
#signing keys env variable checks
|
||||
ANDROID_SIGNING_KEY: '${{ secrets.ANDROID_SIGNING_KEY }}'
|
||||
MACOS_P12_BASE64: '${{ secrets.MACOS_P12_BASE64 }}'
|
||||
# To make a custom build with your own servers set the below secret values
|
||||
RS_PUB_KEY: '${{ secrets.RS_PUB_KEY }}'
|
||||
RENDEZVOUS_SERVER: '${{ secrets.RENDEZVOUS_SERVER }}'
|
||||
UPLOAD_ARTIFACT: "${{ inputs.upload-artifact }}"
|
||||
|
||||
jobs:
|
||||
generate-bridge-linux:
|
||||
uses: ./.gitea/workflows/bridge.yml
|
||||
|
||||
rustdesk-android-aarch64:
|
||||
needs: [generate-bridge-linux]
|
||||
name: build rustdesk android apk ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-features }}]
|
||||
runs-on: [self-hosted, Linux, Ubuntu]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
job:
|
||||
- {
|
||||
arch: aarch64,
|
||||
target: aarch64-linux-android,
|
||||
os: ubuntu-20.04,
|
||||
extra-build-features: "",
|
||||
openssl-arch: android-arm64
|
||||
}
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get -qq install -y git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake libclang-dev ninja-build libappindicator3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libvdpau-dev libva-dev libpam0g-dev libclang-dev llvm-dev libclang-10-dev llvm-10-dev pkg-config tree g++ libc6-dev gcc-multilib g++-multilib openjdk-11-jdk-headless
|
||||
- name: Checkout source code
|
||||
uses: actions/checkout@v3
|
||||
- name: Install flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
- uses: nttld/setup-ndk@v1
|
||||
id: setup-ndk
|
||||
with:
|
||||
ndk-version: ${{ env.NDK_VERSION }}
|
||||
add-to-path: true
|
||||
|
||||
- name: Clone deps
|
||||
shell: bash
|
||||
run: |
|
||||
pushd /opt
|
||||
git clone https://github.com/rustdesk-org/rustdesk_thirdparty_lib.git --depth=1
|
||||
|
||||
- name: Restore bridge files
|
||||
uses: actions/download-artifact@master
|
||||
with:
|
||||
name: bridge-artifact
|
||||
path: ./
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal # minimal component installation (ie, no documentation)
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
prefix-key: rustdesk-lib-cache
|
||||
key: ${{ matrix.job.target }}-${{ matrix.job.extra-build-features }}
|
||||
|
||||
- name: Build rustdesk lib
|
||||
env:
|
||||
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
|
||||
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
|
||||
VCPKG_ROOT: /opt/rustdesk_thirdparty_lib/vcpkg
|
||||
run: |
|
||||
rustup target add ${{ matrix.job.target }}
|
||||
cargo install cargo-ndk --version ${{ env.CARGO_NDK_VERSION }}
|
||||
case ${{ matrix.job.target }} in
|
||||
aarch64-linux-android)
|
||||
./flutter/ndk_arm64.sh
|
||||
mkdir -p ./flutter/android/app/src/main/jniLibs/arm64-v8a
|
||||
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/librustdesk.so
|
||||
;;
|
||||
armv7-linux-androideabi)
|
||||
./flutter/ndk_arm.sh
|
||||
mkdir -p ./flutter/android/app/src/main/jniLibs/armeabi-v7a
|
||||
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/librustdesk.so
|
||||
;;
|
||||
esac
|
||||
|
||||
- name: Build rustdesk
|
||||
shell: bash
|
||||
env:
|
||||
JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
|
||||
run: |
|
||||
export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
|
||||
# temporary use debug sign config
|
||||
sed -i "s/signingConfigs.release/signingConfigs.debug/g" ./flutter/android/app/build.gradle
|
||||
case ${{ matrix.job.target }} in
|
||||
aarch64-linux-android)
|
||||
mkdir -p ./flutter/android/app/src/main/jniLibs/arm64-v8a
|
||||
cp /opt/rustdesk_thirdparty_lib/android/app/src/main/jniLibs/arm64-v8a/*.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/
|
||||
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/librustdesk.so
|
||||
# build flutter
|
||||
pushd flutter
|
||||
flutter build apk --release --target-platform android-arm64 --split-per-abi
|
||||
mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
|
||||
;;
|
||||
armv7-linux-androideabi)
|
||||
mkdir -p ./flutter/android/app/src/main/jniLibs/armeabi-v7a
|
||||
cp /opt/rustdesk_thirdparty_lib/android/app/src/main/jniLibs/armeabi-v7a/*.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/
|
||||
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/librustdesk.so
|
||||
# build flutter
|
||||
pushd flutter
|
||||
flutter build apk --release --target-platform android-arm --split-per-abi
|
||||
mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
|
||||
;;
|
||||
esac
|
||||
popd
|
||||
mkdir -p signed-apk; pushd signed-apk
|
||||
mv ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk .
|
||||
|
||||
- uses: r0adkll/sign-android-release@v1
|
||||
name: Sign app APK
|
||||
if: env.ANDROID_SIGNING_KEY != null
|
||||
id: sign-rustdesk
|
||||
with:
|
||||
releaseDirectory: ./signed-apk
|
||||
signingKeyBase64: ${{ secrets.ANDROID_SIGNING_KEY }}
|
||||
alias: ${{ secrets.ANDROID_ALIAS }}
|
||||
keyStorePassword: ${{ secrets.ANDROID_KEY_STORE_PASSWORD }}
|
||||
keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }}
|
||||
env:
|
||||
# override default build-tools version (29.0.3) -- optional
|
||||
BUILD_TOOLS_VERSION: "30.0.2"
|
||||
|
||||
- name: Upload Artifacts
|
||||
if: env.ANDROID_SIGNING_KEY != null && env.UPLOAD_ARTIFACT == 'true'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
|
||||
path: ${{steps.sign-rustdesk.outputs.signedReleaseFile}}
|
||||
|
||||
- name: Publish signed apk package
|
||||
if: env.ANDROID_SIGNING_KEY != null && env.UPLOAD_ARTIFACT == 'true'
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
prerelease: true
|
||||
tag_name: ${{ env.TAG_NAME }}
|
||||
files: |
|
||||
${{steps.sign-rustdesk.outputs.signedReleaseFile}}
|
||||
|
||||
- name: Publish unsigned apk package
|
||||
if: env.ANDROID_SIGNING_KEY == null && env.UPLOAD_ARTIFACT == 'true'
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
prerelease: true
|
||||
tag_name: ${{ env.TAG_NAME }}
|
||||
files: |
|
||||
signed-apk/rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
|
||||
6
.gitea/workflows/flutter-build-windows.yml
Normal file → Executable file
@@ -1,6 +1,8 @@
|
||||
name: rustdesk-windows-x64
|
||||
#on:
|
||||
# push:
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
env:
|
||||
CARGO_NDK_VERSION: "3.1.2"
|
||||
|
||||
0
.gitignore
vendored
Normal file → Executable file
0
Cargo.lock
generated
Normal file → Executable file
0
Cargo.toml
Normal file → Executable file
0
Dockerfile
Normal file → Executable file
0
appimage/AppImageBuilder-aarch64.yml
Normal file → Executable file
0
appimage/AppImageBuilder-x86_64.yml
Normal file → Executable file
0
docs/CODE_OF_CONDUCT-NL.md
Normal file → Executable file
0
docs/CODE_OF_CONDUCT-PL.md
Normal file → Executable file
0
docs/CODE_OF_CONDUCT-RU.md
Normal file → Executable file
0
docs/CODE_OF_CONDUCT-TR.md
Normal file → Executable file
0
docs/CODE_OF_CONDUCT.md
Normal file → Executable file
0
docs/CONTRIBUTING-DE.md
Normal file → Executable file
0
docs/CONTRIBUTING-ID.md
Normal file → Executable file
0
docs/CONTRIBUTING-IT.md
Normal file → Executable file
0
docs/CONTRIBUTING-NL.md
Normal file → Executable file
0
docs/CONTRIBUTING-PL.md
Normal file → Executable file
0
docs/CONTRIBUTING-RU.md
Normal file → Executable file
0
docs/CONTRIBUTING-TR.md
Normal file → Executable file
0
docs/CONTRIBUTING.md
Normal file → Executable file
0
docs/DEVCONTAINER-DE.md
Normal file → Executable file
0
docs/DEVCONTAINER-IT.md
Normal file → Executable file
0
docs/DEVCONTAINER-NL.md
Normal file → Executable file
0
docs/DEVCONTAINER-PL.md
Normal file → Executable file
0
docs/DEVCONTAINER-TR.md
Normal file → Executable file
0
docs/DEVCONTAINER.md
Normal file → Executable file
0
docs/README-AR.md
Normal file → Executable file
0
docs/README-CS.md
Normal file → Executable file
0
docs/README-DA.md
Normal file → Executable file
0
docs/README-DE.md
Normal file → Executable file
0
docs/README-EO.md
Normal file → Executable file
0
docs/README-ES.md
Normal file → Executable file
0
docs/README-FA.md
Normal file → Executable file
0
docs/README-FI.md
Normal file → Executable file
0
docs/README-FR.md
Normal file → Executable file
0
docs/README-GR.md
Normal file → Executable file
0
docs/README-HU.md
Normal file → Executable file
0
docs/README-ID.md
Normal file → Executable file
0
docs/README-IT.md
Normal file → Executable file
0
docs/README-JP.md
Normal file → Executable file
0
docs/README-KR.md
Normal file → Executable file
0
docs/README-ML.md
Normal file → Executable file
0
docs/README-NL.md
Normal file → Executable file
0
docs/README-PL.md
Normal file → Executable file
0
docs/README-PTBR.md
Normal file → Executable file
0
docs/README-RU.md
Normal file → Executable file
0
docs/README-TR.md
Normal file → Executable file
0
docs/README-UA.md
Normal file → Executable file
0
docs/README-VN.md
Normal file → Executable file
0
docs/README-ZH.md
Normal file → Executable file
0
docs/SECURITY-DE.md
Normal file → Executable file
0
docs/SECURITY-IT.md
Normal file → Executable file
0
docs/SECURITY-NL.md
Normal file → Executable file
0
docs/SECURITY-PL.md
Normal file → Executable file
0
docs/SECURITY-TR.md
Normal file → Executable file
0
docs/SECURITY.md
Normal file → Executable file
0
examples/custom_plugin/Cargo.toml
Normal file → Executable file
0
examples/custom_plugin/src/lib.rs
Normal file → Executable file
0
fastlane/metadata/android/en-US/full_description.txt
Normal file → Executable file
0
fastlane/metadata/android/en-US/images/icon.png
Normal file → Executable file
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
0
fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
Normal file → Executable file
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
Normal file → Executable file
|
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 318 KiB |
0
fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
Normal file → Executable file
|
Before Width: | Height: | Size: 419 KiB After Width: | Height: | Size: 419 KiB |
0
fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
Normal file → Executable file
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
0
fastlane/metadata/android/en-US/images/sevenInchScreenshots/5.png
Normal file → Executable file
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
0
fastlane/metadata/android/en-US/images/sevenInchScreenshots/6.png
Normal file → Executable file
|
Before Width: | Height: | Size: 451 KiB After Width: | Height: | Size: 451 KiB |
0
fastlane/metadata/android/en-US/images/sevenInchScreenshots/7.png
Normal file → Executable file
|
Before Width: | Height: | Size: 378 KiB After Width: | Height: | Size: 378 KiB |
0
fastlane/metadata/android/en-US/images/sevenInchScreenshots/8.png
Normal file → Executable file
|
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 266 KiB |