feat: add sciter nightly build

This commit is contained in:
Kingtous 2023-03-27 10:50:24 +08:00
parent a2cfeca7f2
commit c30479f02f
3 changed files with 134 additions and 2 deletions

View File

@ -26,7 +26,7 @@ env:
NDK_VERSION: "r23" NDK_VERSION: "r23"
jobs: jobs:
build-for-windows: build-for-windows-flutter:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) name: ${{ matrix.job.target }} (${{ matrix.job.os }})
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
strategy: strategy:
@ -93,6 +93,27 @@ jobs:
- name: Build rustdesk - name: Build rustdesk
run: python3 .\build.py --portable --hwcodec --flutter run: python3 .\build.py --portable --hwcodec --flutter
# The fallback for the flutter version, we use Sciter for 32bit Windows.
build-for-windows-sciter:
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
# - { target: i686-pc-windows-msvc , os: windows-2019 }
# - { target: x86_64-pc-windows-gnu , os: windows-2019 }
- { target: i686-pc-windows-msvc, os: windows-2019 }
# - { target: aarch64-pc-windows-msvc, os: windows-2019 }
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Build rustdesk sciter
uses: ./.github/workflows/sciter.yml
with:
target: ${{ matrix.job.target }}
build-for-macOS: build-for-macOS:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}] name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}

View File

@ -23,7 +23,7 @@ env:
RENDEZVOUS_SERVER: '${{ secrets.RENDEZVOUS_SERVER }}' RENDEZVOUS_SERVER: '${{ secrets.RENDEZVOUS_SERVER }}'
jobs: jobs:
build-for-windows: build-for-windows-flutter:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) name: ${{ matrix.job.target }} (${{ matrix.job.os }})
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
strategy: strategy:
@ -134,6 +134,64 @@ jobs:
files: | files: |
./SignOutput/rustdesk-*.exe ./SignOutput/rustdesk-*.exe
# The fallback for the flutter version, we use Sciter for 32bit Windows.
build-for-windows-sciter:
name: ${{ matrix.job.target }} (${{ matrix.job.os }})
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
# - { target: i686-pc-windows-msvc , os: windows-2019 }
# - { target: x86_64-pc-windows-gnu , os: windows-2019 }
- { target: i686-pc-windows-msvc, os: windows-2019 }
# - { target: aarch64-pc-windows-msvc, os: windows-2019 }
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Build rustdesk sciter
uses: ./.github/workflows/sciter.yml
with:
target: ${{ matrix.job.target }}
- name: Sign rustdesk files
uses: GermanBluefox/code-sign-action@v7
with:
certificate: '${{ secrets.WINDOWS_PFX_BASE64 }}'
password: '${{ secrets.WINDOWS_PFX_PASSWORD }}'
certificatesha1: '${{ secrets.WINDOWS_PFX_SHA1_THUMBPRINT }}'
# certificatename: '${{ secrets.CERTNAME }}'
folder: './Release/'
recursive: true
- name: Build self-extracted executable
shell: bash
run: |
pushd ./libs/portable
python3 ./generate.py -f ../../Release/ -o . -e ../../Release/rustdesk.exe
popd
mkdir -p ./SignOutput
mv ./target/release/rustdesk-portable-packer.exe ./SignOutput/rustdesk-${{ env.VERSION }}-${{ matrix.job.target }}.exe
- name: Sign rustdesk self-extracted file
uses: GermanBluefox/code-sign-action@v7
with:
certificate: '${{ secrets.WINDOWS_PFX_BASE64 }}'
password: '${{ secrets.WINDOWS_PFX_PASSWORD }}'
certificatesha1: '${{ secrets.WINDOWS_PFX_SHA1_THUMBPRINT }}'
# certificatename: '${{ secrets.WINDOWS_PFX_NAME }}'
folder: './SignOutput'
recursive: false
- name: Publish Release
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
./SignOutput/rustdesk-*.exe
build-for-macOS: build-for-macOS:
name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}] name: ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-args }}]
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}

53
.github/workflows/sciter.yml vendored Normal file
View File

@ -0,0 +1,53 @@
name: Build Sciter
on:
workflow_call:
inputs:
target:
required: true
type: string
outputs:
output_folder:
description: "The relative directory of the executable folder which contains all dependencies for RustDesk."
value: ${{ jobs.build-sciter.outputs.output_folder }}
jobs:
build-sciter:
runs-on: windows-2019
outputs:
output_folder: ${{ steps.build.outputs.output_folder }}
steps:
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ inputs.job.target }}
override: true
profile: minimal # minimal component installation (ie, no documentation)
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.job.os }}-sciter
- name: Restore from cache and install vcpkg
uses: lukka/run-vcpkg@v7
with:
setupOnly: true
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies
run: |
$VCPKG_ROOT/vcpkg install libvpx:x86-windows-static libyuv:x86-windows-static opus:x86-windows-static
shell: bash
- name: Build rustdesk
id: build
shell: bash
run: |
python3 res/inline-sciter.py
# Replace the link for the ico.
cp flutter/windows/runner/resources/app_icon.ico res/icon.ico
cargo build --features inline --target=${{ matrix.job.target }} --release
mkdir -p ./Release
mv ./target/release/rustdesk.exe ./Release/rustdesk.exe
wget -O ./Release/sciter.dll https://github.com/c-smile/sciter-sdk/raw/master/bin.win/x32/sciter.dll
echo "output_folder=./Release" >> $GITHUB_OUTPUT