From 7bb9f85f1cfe45f389d7a45f35ff4762291ec0d4 Mon Sep 17 00:00:00 2001 From: SpikeHD Date: Wed, 13 Sep 2023 18:42:26 -0700 Subject: [PATCH] fix(actions): arm builds?? --- .github/workflows/build.yml | 65 ++++++++++++++++++++++++++++++++++++- src-tauri/Cargo.toml | 6 ++++ 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6a60c02..8eda5e1f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,6 +55,10 @@ jobs: libgtk-3-dev \ libayatana-appindicator3-dev \ librsvg2-dev + + - name: Install MacOS universal target + if: matrix.platform == 'macos-latest' + run: rustup target add aarch64-apple-darwin - name: Install deps and build # Include --target universal-apple-darwin for MacOS, otherwise it will only build for x86_64 @@ -126,4 +130,63 @@ jobs: uses: actions/upload-artifact@v3 with: name: Dorion_macos.dmg - path: src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg \ No newline at end of file + path: src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg + + build-arm: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup node + uses: actions/setup-node@v1 + with: + node-version: 18 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Install Linux dependencies + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.0-dev:arm64 \ + build-essential \ + curl \ + wget \ + libssl-dev \ + libgtk-3-dev \ + libayatana-appindicator3-dev \ + librsvg2-dev \ + gcc-aarch64-linux-gnu + + - name: Set PKG_CONFIG_SYSROOT_DIR=/usr/aarch64-linux-gnu/ + run: export PKG_CONFIG_SYSROOT_DIR=/usr/aarch64-linux-gnu/ + + - name: Install armv8 target + run: rustup target add aarch64-unknown-linux-gnu + + - name: Install deps and build + run: pnpm install && pnpm vupdate && pnpm prebuild && pnpm build && pnpm tauri build --target aarch64-unknown-linux-gnu + + - name: Create empty folders for plugins and themes for armv8 + run: mkdir src-tauri/target/aarch64-unknown-linux-gnu/release/plugins && mkdir src-tauri/target/aarch64-unknown-linux-gnu/release/themes + + - name: Create empty config.json for armv8 + run: cd src-tauri/target/aarch64-unknown-linux-gnu/release && touch config.json + + - name: Compress build for armv8 + run: cd src-tauri/target/aarch64-unknown-linux-gnu/release && tar -czvf dorion_armv8.tar.gz dorion config.json ./plugins ./themes ./injection ./html ./icons + + - name: Upload Linux portable for armv8 + uses: actions/upload-artifact@v3 + with: + name: Dorion_armv8_portable.tar.gz + path: src-tauri/target/aarch64-unknown-linux-gnu/release/dorion_armv8.tar.gz + + - name: Upload Linux deb for armv8 + uses: actions/upload-artifact@v3 + with: + name: Dorion_armv8_deb.tar.gz + path: src-tauri/target/aarch64-unknown-linux-gnu/release/bundle/deb/*.deb diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 255ab1ff..00adb661 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -57,6 +57,12 @@ features = [ "Win32_UI_WindowsAndMessaging", ] +[target.armv7-unknown-linux-gnueabihf] +linker = "arm-linux-gnueabihf-gcc" + +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" + [features] # by default Tauri runs in production mode # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL