added bridge.yml
This commit is contained in:
91
.github/workflows/bridge.yml
vendored
Normal file
91
.github/workflows/bridge.yml
vendored
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# This yaml shares the build bridge steps with ci and nightly.
|
||||||
|
name: Build flutter-rust-bridge
|
||||||
|
# 2023-11-23 18:00:00+00:00
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
env:
|
||||||
|
FLUTTER_VERSION: "3.19.6"
|
||||||
|
FLUTTER_RUST_BRIDGE_VERSION: "1.80.1"
|
||||||
|
RUST_VERSION: "1.75" # https://github.com/rustdesk/rustdesk/discussions/7503
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
generate_bridge:
|
||||||
|
runs-on: ${{ matrix.job.os }}
|
||||||
|
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@v4
|
||||||
|
|
||||||
|
- name: Install prerequisites
|
||||||
|
run: |
|
||||||
|
sudo apt-get install ca-certificates -y
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y \
|
||||||
|
clang \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
g++ \
|
||||||
|
libclang-10-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
llvm-10-dev \
|
||||||
|
nasm \
|
||||||
|
ninja-build \
|
||||||
|
pkg-config \
|
||||||
|
wget
|
||||||
|
|
||||||
|
- name: Install Rust toolchain
|
||||||
|
uses: dtolnay/rust-toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
targets: ${{ matrix.job.target }}
|
||||||
|
components: "rustfmt"
|
||||||
|
|
||||||
|
- 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
|
||||||
60
.github/workflows/third-party-RustDeskTempTopMostWindow.yml
vendored
Normal file
60
.github/workflows/third-party-RustDeskTempTopMostWindow.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
name: build RustDeskTempTopMostWindow
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
upload-artifact:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
target:
|
||||||
|
description: 'Target'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
default: 'windows-2022'
|
||||||
|
configuration:
|
||||||
|
description: 'Configuration'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
default: 'Release'
|
||||||
|
platform:
|
||||||
|
description: 'Platform'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
default: 'x64'
|
||||||
|
target_version:
|
||||||
|
description: 'TargetVersion'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
default: 'Windows10'
|
||||||
|
|
||||||
|
env:
|
||||||
|
project_path: WindowInjection/WindowInjection.vcxproj
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-RustDeskTempTopMostWindow:
|
||||||
|
runs-on: ${{ inputs.target }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
env:
|
||||||
|
build_output_dir: RustDeskTempTopMostWindow/WindowInjection/${{ inputs.platform }}/${{ inputs.configuration }}
|
||||||
|
steps:
|
||||||
|
- name: Add MSBuild to PATH
|
||||||
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
|
||||||
|
- name: Download the source code
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/rustdesk-org/RustDeskTempTopMostWindow RustDeskTempTopMostWindow
|
||||||
|
|
||||||
|
# Build. commit 53b548a5398624f7149a382000397993542ad796 is tag v0.3
|
||||||
|
- name: Build the project
|
||||||
|
run: |
|
||||||
|
cd RustDeskTempTopMostWindow && git checkout 53b548a5398624f7149a382000397993542ad796
|
||||||
|
msbuild ${{ env.project_path }} -p:Configuration=${{ inputs.configuration }} -p:Platform=${{ inputs.platform }} /p:TargetVersion=${{ inputs.target_version }}
|
||||||
|
|
||||||
|
- name: Archive build artifacts
|
||||||
|
uses: actions/upload-artifact@master
|
||||||
|
if: ${{ inputs.upload-artifact }}
|
||||||
|
with:
|
||||||
|
name: topmostwindow-artifacts
|
||||||
|
path: |
|
||||||
|
./${{ env.build_output_dir }}/WindowInjection.dll
|
||||||
Reference in New Issue
Block a user