Merge pull request #1767 from Kingtous/master

opt: flutter nightly build
This commit is contained in:
RustDesk 2022-10-21 14:47:08 +08:00 committed by GitHub
commit 3cec632ea0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 30 deletions

View File

@ -2,9 +2,16 @@ name: Flutter Nightly Build
on: on:
schedule: schedule:
- cron: "* 0 * * *" # schedule build every night
- cron: "0 0 * * *"
workflow_dispatch: workflow_dispatch:
env:
LLVM_VERSION: "10.0"
FLUTTER_VERSION: "3.0.5"
TAG_NAME: "nightly"
VCPKG_COMMIT_ID: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98'
jobs: jobs:
build-for-windows: build-for-windows:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) name: ${{ matrix.job.target }} (${{ matrix.job.os }})
@ -21,16 +28,15 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install LLVM and Clang - name: Install LLVM and Clang
if: startsWith(matrix.job.os, 'windows')
uses: KyleMayes/install-llvm-action@v1 uses: KyleMayes/install-llvm-action@v1
with: with:
version: "13.0" version: ${{ env.LLVM_VERSION }}
- name: Install flutter - name: Install flutter
uses: subosito/flutter-action@v2 uses: subosito/flutter-action@v2
with: with:
channel: 'stable' channel: 'stable'
flutter-version: '3.0.5' flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -40,19 +46,18 @@ jobs:
override: true override: true
profile: minimal # minimal component installation (ie, no documentation) profile: minimal # minimal component installation (ie, no documentation)
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.job.os }}
- name: Install flutter rust bridge deps - name: Install flutter rust bridge deps
run: | run: |
dart pub global activate ffigen --version 5.0.1 dart pub global activate ffigen --version 5.0.1
$exists = Test-Path ~/.cargo/bin/flutter_rust_bridge_codegen.exe $exists = Test-Path ~/.cargo/bin/flutter_rust_bridge_codegen.exe
If ( ! $exists -eq $True ) Push-Location ..
{ git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1
Push-Location .. Push-Location flutter_rust_bridge/frb_codegen ; cargo install --path . ; Pop-Location
git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1 Pop-Location
Push-Location flutter_rust_bridge/frb_codegen ; cargo install --path . ; Pop-Location
Pop-Location
}
Push-Location flutter ; flutter pub get ; Pop-Location Push-Location flutter ; flutter pub get ; Pop-Location
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart ~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
@ -60,7 +65,7 @@ jobs:
uses: lukka/run-vcpkg@v7 uses: lukka/run-vcpkg@v7
with: with:
setupOnly: true setupOnly: true
vcpkgGitCommitId: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98' vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies - name: Install vcpkg dependencies
run: | run: |
@ -68,13 +73,20 @@ jobs:
shell: bash shell: bash
- name: Build rustdesk - name: Build rustdesk
run: python3 .\build.py --portable run: python3 .\build.py --portable --hwcodec --flutter
- name: Rename rustdesk
shell: bash
run: |
for name in rustdesk*??.exe; do
mv "$name" "${name%%.exe}-${{ matrix.job.target }}.exe"
done
- name: Publish Release - name: Publish Release
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1
with: with:
prerelease: true prerelease: true
tag_name: "nightly" tag_name: ${{ env.TAG_NAME }}
files: | files: |
rustdesk-*.exe rustdesk-*.exe
@ -91,7 +103,7 @@ jobs:
# - { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true } # - { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
# - { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true } # - { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
# - { target: x86_64-apple-darwin , os: macos-10.15 } # - { target: x86_64-apple-darwin , os: macos-10.15 }
- { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04 } - { target: x86_64-unknown-linux-gnu , os: ubuntu-18.04 }
# - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true } # - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
steps: steps:
- name: Checkout source code - name: Checkout source code
@ -100,7 +112,7 @@ jobs:
- name: Install prerequisites - name: Install prerequisites
run: | run: |
case ${{ matrix.job.target }} in case ${{ matrix.job.target }} in
x86_64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt install -y g++ gcc 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 libayatana-appindicator3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev;; x86_64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt install -y g++ gcc 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 libayatana-appindicator3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libvdpau-dev libva-dev libclang-dev llvm-dev libclang-10-dev llvm-10-dev;;
# arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;; # arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
# aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;; # aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
esac esac
@ -109,7 +121,7 @@ jobs:
uses: subosito/flutter-action@v2 uses: subosito/flutter-action@v2
with: with:
channel: 'stable' channel: 'stable'
flutter-version: '3.0.5' flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
@ -119,17 +131,17 @@ jobs:
override: true override: true
profile: minimal # minimal component installation (ie, no documentation) profile: minimal # minimal component installation (ie, no documentation)
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.job.os }}
- name: Install flutter rust bridge deps - name: Install flutter rust bridge deps
shell: bash shell: bash
run: | run: |
dart pub global activate ffigen --version 5.0.1 dart pub global activate ffigen --version 5.0.1
# flutter_rust_bridge # flutter_rust_bridge
if [[ ! -e $HOME/.cargo/bin/flutter_rust_bridge_codegen ]]; then pushd /tmp && git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1 && popd
pushd /tmp && git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1 && popd pushd /tmp/flutter_rust_bridge/frb_codegen && cargo install --path . && popd
pushd /tmp/flutter_rust_bridge/frb_codegen && cargo install --path . && popd
fi
pushd flutter && flutter pub get && popd pushd flutter && flutter pub get && popd
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart ~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
@ -137,7 +149,7 @@ jobs:
uses: lukka/run-vcpkg@v7 uses: lukka/run-vcpkg@v7
with: with:
setupOnly: true setupOnly: true
vcpkgGitCommitId: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98' vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies - name: Install vcpkg dependencies
run: | run: |
@ -146,7 +158,7 @@ jobs:
- name: Install cargo bundle tools - name: Install cargo bundle tools
run: | run: |
cargo install cargo-bundle cargo install cargo-bundle --force
- name: Show version information (Rust, cargo, GCC) - name: Show version information (Rust, cargo, GCC)
shell: bash shell: bash
@ -159,13 +171,20 @@ jobs:
rustc -V rustc -V
- name: Build rustdesk - name: Build rustdesk
run: ./build.py --flutter run: ./build.py --flutter --hwcodec
- name: Rename rustdesk
shell: bash
run: |
for name in rustdesk*??.deb; do
mv "$name" "${name%%.deb}-${{ matrix.job.target }}-${{ matrix.job.os }}.deb"
done
- name: Publish Release - name: Publish Release
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1
with: with:
prerelease: true prerelease: true
tag_name: "nightly" tag_name: ${{ env.TAG_NAME }}
files: | files: |
rustdesk-*.deb rustdesk*.deb

View File

@ -216,7 +216,7 @@ def build_flutter_windows(version):
else: else:
os.rename("./target/release/rustdesk-portable-packer.exe", "./rustdesk_portable.exe") os.rename("./target/release/rustdesk-portable-packer.exe", "./rustdesk_portable.exe")
print(f"output location: {os.path.abspath(os.curdir)}/rustdesk_portable.exe") print(f"output location: {os.path.abspath(os.curdir)}/rustdesk_portable.exe")
os.system(f"cp -rf ./rustdesk_portable.exe ./rustdesk-{version}-install.exe") os.rename("./rustdesk_portable.exe", f"./rustdesk-{version}-install.exe")
print(f"output location: {os.path.abspath(os.curdir)}/rustdesk-{version}-install.exe") print(f"output location: {os.path.abspath(os.curdir)}/rustdesk-{version}-install.exe")
def main(): def main():

View File

@ -97,7 +97,7 @@ dependencies:
# ref: 62f09545149f320616467c306c8c5f71714a18e6 # ref: 62f09545149f320616467c306c8c5f71714a18e6
uni_links: ^0.5.1 uni_links: ^0.5.1
uni_links_desktop: ^0.1.3 uni_links_desktop: ^0.1.3
path: ^1.8.2 path: ^1.8.1
dev_dependencies: dev_dependencies:
icons_launcher: ^2.0.4 icons_launcher: ^2.0.4