Merge pull request #1767 from Kingtous/master
opt: flutter nightly build
This commit is contained in:
		
						commit
						3cec632ea0
					
				
							
								
								
									
										75
									
								
								.github/workflows/flutter-nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								.github/workflows/flutter-nightly.yml
									
									
									
									
										vendored
									
									
								
							@ -2,9 +2,16 @@ name: Flutter Nightly Build
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  schedule:
 | 
			
		||||
    - cron: "* 0 * * *"
 | 
			
		||||
    # schedule build every night
 | 
			
		||||
    - cron: "0 0 * * *"
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  LLVM_VERSION: "10.0"
 | 
			
		||||
  FLUTTER_VERSION: "3.0.5"
 | 
			
		||||
  TAG_NAME: "nightly"
 | 
			
		||||
  VCPKG_COMMIT_ID: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build-for-windows:
 | 
			
		||||
    name: ${{ matrix.job.target }} (${{ matrix.job.os }})
 | 
			
		||||
@ -21,16 +28,15 @@ jobs:
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Install LLVM and Clang
 | 
			
		||||
        if: startsWith(matrix.job.os, 'windows')
 | 
			
		||||
        uses: KyleMayes/install-llvm-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          version: "13.0"
 | 
			
		||||
          version: ${{ env.LLVM_VERSION }}
 | 
			
		||||
 | 
			
		||||
      - name: Install flutter
 | 
			
		||||
        uses: subosito/flutter-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          channel: 'stable'
 | 
			
		||||
          flutter-version: '3.0.5'
 | 
			
		||||
          flutter-version: ${{ env.FLUTTER_VERSION }}
 | 
			
		||||
 | 
			
		||||
      - name: Install Rust toolchain
 | 
			
		||||
        uses: actions-rs/toolchain@v1
 | 
			
		||||
@ -40,19 +46,18 @@ jobs:
 | 
			
		||||
          override: true
 | 
			
		||||
          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
 | 
			
		||||
        run: |
 | 
			
		||||
          dart pub global activate ffigen --version 5.0.1
 | 
			
		||||
          $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 flutter_rust_bridge/frb_codegen ; cargo install --path . ; Pop-Location
 | 
			
		||||
            Pop-Location
 | 
			
		||||
          }
 | 
			
		||||
          Push-Location ..
 | 
			
		||||
          git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1
 | 
			
		||||
          Push-Location flutter_rust_bridge/frb_codegen ; cargo install --path . ; Pop-Location
 | 
			
		||||
          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
 | 
			
		||||
 | 
			
		||||
@ -60,7 +65,7 @@ jobs:
 | 
			
		||||
        uses: lukka/run-vcpkg@v7
 | 
			
		||||
        with:
 | 
			
		||||
          setupOnly: true
 | 
			
		||||
          vcpkgGitCommitId: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98'
 | 
			
		||||
          vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
 | 
			
		||||
 | 
			
		||||
      - name: Install vcpkg dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
@ -68,13 +73,20 @@ jobs:
 | 
			
		||||
        shell: bash
 | 
			
		||||
 | 
			
		||||
      - 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
 | 
			
		||||
        uses: softprops/action-gh-release@v1
 | 
			
		||||
        with:
 | 
			
		||||
          prerelease: true
 | 
			
		||||
          tag_name: "nightly"
 | 
			
		||||
          tag_name: ${{ env.TAG_NAME }}
 | 
			
		||||
          files: |
 | 
			
		||||
            rustdesk-*.exe
 | 
			
		||||
 | 
			
		||||
@ -91,7 +103,7 @@ jobs:
 | 
			
		||||
          # - { 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: 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 }
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout source code
 | 
			
		||||
@ -100,7 +112,7 @@ jobs:
 | 
			
		||||
      - name: Install prerequisites
 | 
			
		||||
        run: |
 | 
			
		||||
          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 ;;
 | 
			
		||||
            # aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
 | 
			
		||||
          esac
 | 
			
		||||
@ -109,7 +121,7 @@ jobs:
 | 
			
		||||
        uses: subosito/flutter-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          channel: 'stable'
 | 
			
		||||
          flutter-version: '3.0.5'
 | 
			
		||||
          flutter-version: ${{ env.FLUTTER_VERSION }}
 | 
			
		||||
 | 
			
		||||
      - name: Install Rust toolchain
 | 
			
		||||
        uses: actions-rs/toolchain@v1
 | 
			
		||||
@ -119,17 +131,17 @@ jobs:
 | 
			
		||||
          override: true
 | 
			
		||||
          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
 | 
			
		||||
        shell: bash
 | 
			
		||||
        run: |
 | 
			
		||||
          dart pub global activate ffigen --version 5.0.1
 | 
			
		||||
          # 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/flutter_rust_bridge/frb_codegen && cargo install --path . && popd
 | 
			
		||||
          fi
 | 
			
		||||
          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 flutter && flutter pub get && popd
 | 
			
		||||
          ~/.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
 | 
			
		||||
        with:
 | 
			
		||||
          setupOnly: true
 | 
			
		||||
          vcpkgGitCommitId: '6ca56aeb457f033d344a7106cb3f9f1abf8f4e98'
 | 
			
		||||
          vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
 | 
			
		||||
 | 
			
		||||
      - name: Install vcpkg dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
@ -146,7 +158,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Install cargo bundle tools
 | 
			
		||||
        run: |
 | 
			
		||||
          cargo install cargo-bundle
 | 
			
		||||
          cargo install cargo-bundle --force
 | 
			
		||||
 | 
			
		||||
      - name: Show version information (Rust, cargo, GCC)
 | 
			
		||||
        shell: bash
 | 
			
		||||
@ -159,13 +171,20 @@ jobs:
 | 
			
		||||
          rustc -V
 | 
			
		||||
 | 
			
		||||
      - 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
 | 
			
		||||
        uses: softprops/action-gh-release@v1
 | 
			
		||||
        with:
 | 
			
		||||
          prerelease: true
 | 
			
		||||
          tag_name: "nightly"
 | 
			
		||||
          tag_name: ${{ env.TAG_NAME }}
 | 
			
		||||
          files: |
 | 
			
		||||
            rustdesk-*.deb
 | 
			
		||||
            rustdesk*.deb
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								build.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								build.py
									
									
									
									
									
								
							@ -216,7 +216,7 @@ def build_flutter_windows(version):
 | 
			
		||||
    else:
 | 
			
		||||
        os.rename("./target/release/rustdesk-portable-packer.exe", "./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")
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
 | 
			
		||||
@ -97,7 +97,7 @@ dependencies:
 | 
			
		||||
        #     ref: 62f09545149f320616467c306c8c5f71714a18e6
 | 
			
		||||
    uni_links: ^0.5.1
 | 
			
		||||
    uni_links_desktop: ^0.1.3
 | 
			
		||||
    path: ^1.8.2
 | 
			
		||||
    path: ^1.8.1
 | 
			
		||||
 | 
			
		||||
dev_dependencies:
 | 
			
		||||
    icons_launcher: ^2.0.4
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user