feat: try add ios build

This commit is contained in:
Kingtous 2023-04-16 23:39:43 +08:00
parent 8e70e2ffe4
commit a3c3199ded

View File

@ -370,6 +370,91 @@ jobs:
generate-bridge-linux:
uses: ./.github/workflows/bridge.yml
build-rustdesk-ios:
needs: [generate-bridge-linux]
name: build rustdesk ios ipa ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-features }}]
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
- {
arch: aarch64,
target: aarch64-apple-ios,
os: macos-latest,
extra-build-features: "",
}
steps:
- name: Install dependencies
run: |
brew install nasm yasm
- name: Checkout source code
uses: actions/checkout@v3
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Clone deps
shell: bash
run: |
pushd /opt
git clone https://github.com/Kingtous/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
target: ${{ matrix.job.target }}
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: Disable rust bridge build
run: |
sed -i "s/gen_flutter_rust_bridge();/\/\//g" build.rs
- name: Build rustdesk lib
env:
VCPKG_ROOT: /opt/rustdesk_thirdparty_lib/vcpkg
run: |
rustup target add ${{ matrix.job.target }}
cargo build --release --target aarch64-apple-ios --lib
- name: Build rustdesk
shell: bash
run: |
pushd flutter
flutter build ipa --release
- 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: flutter/build/ios/ipa/*.ipa
- name: Publish ipa 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: |
flutter/build/ios/ipa/*.ipa
build-rustdesk-android:
needs: [generate-bridge-linux]
name: build rustdesk android apk ${{ matrix.job.target }} (${{ matrix.job.os }}) [${{ matrix.job.extra-build-features }}]