From 5082ed3b9e26be5e834946bf684069dcafab1b0e Mon Sep 17 00:00:00 2001 From: rustdesk Date: Tue, 30 Apr 2024 12:02:20 +0800 Subject: [PATCH] test flatpak arm64 --- .github/workflows/build-macos-arm64.yml | 88 +++++++++++++++++-------- 1 file changed, 62 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build-macos-arm64.yml b/.github/workflows/build-macos-arm64.yml index 3416ec72d..a744dd0c3 100644 --- a/.github/workflows/build-macos-arm64.yml +++ b/.github/workflows/build-macos-arm64.yml @@ -36,34 +36,70 @@ jobs: runs-on: [self-hosted, macOS, ARM64] strategy: fail-fast: false + matrix: + job: + - { + target: aarch64-unknown-linux-gnu, + # try out newer flatpak since error of "error: Nothing matches org.freedesktop.Platform in remote flathub" + distro: ubuntu22.04, + on: [self-hosted, Linux, ARM64], + arch: aarch64, + } steps: - - name: Export GitHub Actions cache environment variables - uses: actions/github-script@v6 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - name: Checkout source code uses: actions/checkout@v3 - # $VCPKG_ROOT/vcpkg install --triplet arm64-ios --x-install-root="$VCPKG_ROOT/installed" + - uses: rustdesk-org/run-on-arch-action@amd64-support + name: Build rustdesk flatpak package for ${{ matrix.job.arch }} + id: rpm + with: + arch: ${{ matrix.job.arch }} + distro: ${{ matrix.job.distro }} + githubToken: ${{ github.token }} + setup: | + ls -l "${PWD}" + dockerRunArgs: | + --volume "${PWD}:/workspace" + shell: /bin/bash + install: | + apt-get update -y + apt-get install -y \ + curl \ + git \ + rpm \ + wget + run: | + # disable git safe.directory + git config --global --add safe.directory "*" + pushd /workspace + # install + apt-get update -y + apt-get install -y \ + cmake \ + curl \ + flatpak \ + flatpak-builder \ + gcc \ + git \ + g++ \ + libgtk-3-dev \ + nasm \ + wget + # flatpak deps + flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak --user install -y flathub org.freedesktop.Platform/${{ matrix.job.arch }}/23.08 + flatpak --user install -y flathub org.freedesktop.Sdk/${{ matrix.job.arch }}/23.08 + # package + pushd flatpak + git clone https://github.com/flathub/shared-modules.git --depth=1 + flatpak-builder --user --force-clean --repo=repo ./build ./rustdesk.json + flatpak build-bundle ./repo rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.flatpak com.rustdesk.RustDesk - - 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 - ~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/ios/Runner/bridge_generated.h - - - name: Build rustdesk lib - run: | - cargo build --features flutter,hwcodec --release --target aarch64-apple-ios --lib - - - name: Build rustdesk - shell: bash - run: | - pushd flutter - # flutter build ipa --release --obfuscate --split-debug-info=./split-debug-info --no-codesign - # for easy debugging - flutter build ipa --release --no-codesign + - name: Publish flatpak package + uses: softprops/action-gh-release@v1 + if: env.UPLOAD_ARTIFACT == 'true' + with: + prerelease: true + tag_name: ${{ env.TAG_NAME }} + files: | + flatpak/rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.flatpak