arm linux build? (#629)

* arm build?

* try newer vulkan

* dont think this will work but try anyway

* Update build.yml
This commit is contained in:
CJ Pais 2026-01-20 13:03:03 +08:00 committed by GitHub
parent c45df96065
commit 7e2760ea27
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 47 additions and 13 deletions

View file

@ -22,6 +22,9 @@ jobs:
- platform: "ubuntu-24.04" # Build AppImage and RPM on 24.04
args: "--bundles appimage,rpm"
target: "x86_64-unknown-linux-gnu"
- platform: "ubuntu-24.04-arm" # Build for ARM64 Linux
args: "--bundles appimage,deb,rpm"
target: "aarch64-unknown-linux-gnu"
- platform: "windows-latest"
args: ""
target: "x86_64-pc-windows-msvc"

View file

@ -101,8 +101,8 @@ jobs:
workspaces: "./src-tauri -> target"
key: ${{ inputs.platform }}-${{ inputs.target }}
- name: install dependencies (ubuntu 24.04)
if: contains(inputs.platform, 'ubuntu-24.04')
- name: install dependencies (ubuntu 24.04 x64)
if: contains(inputs.platform, 'ubuntu-24.04') && !contains(inputs.platform, 'arm')
run: |
sudo apt-get update
sudo apt-get install -y libappindicator3-dev librsvg2-dev patchelf libasound2-dev libopenblas-dev libx11-dev libxtst-dev libxrandr-dev \
@ -113,8 +113,14 @@ jobs:
gir1.2-javascriptcoregtk-4.1=2.44.0-2 \
gir1.2-webkit2-4.1=2.44.0-2
- name: install dependencies (ubuntu 24.04 arm64)
if: contains(inputs.platform, 'ubuntu-24.04-arm')
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libasound2-dev libopenblas-dev libx11-dev libxtst-dev libxrandr-dev xdg-utils
- name: install dependencies (ubuntu 22.04)
if: contains(inputs.platform, 'ubuntu-22.04')
if: contains(inputs.platform, 'ubuntu-22.04') && !contains(inputs.platform, 'arm')
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libasound2-dev libopenblas-dev libx11-dev libxtst-dev libxrandr-dev
@ -172,7 +178,7 @@ jobs:
run: cargo install trusted-signing-cli
- name: Prepare Vulkan SDK for Ubuntu 24.04
if: contains(inputs.platform, 'ubuntu-24.04')
if: contains(inputs.platform, 'ubuntu-24.04') && !contains(inputs.platform, 'arm')
run: |
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.290-noble.list https://packages.lunarg.com/vulkan/1.3.290/lunarg-vulkan-1.3.290-noble.list
@ -180,8 +186,21 @@ jobs:
sudo apt install vulkan-sdk -y
sudo apt-get install -y mesa-vulkan-drivers
- name: Prepare Vulkan SDK for Ubuntu ARM64
if: contains(inputs.platform, 'ubuntu') && contains(inputs.platform, 'arm')
uses: jakoch/install-vulkan-sdk-action@v1
with:
vulkan_version: 1.4.335.0
cache: true
- name: Install Vulkan runtime libraries (Ubuntu ARM64)
if: contains(inputs.platform, 'ubuntu') && contains(inputs.platform, 'arm')
run: |
sudo apt-get update
sudo apt-get install -y libvulkan-dev mesa-vulkan-drivers
- name: Prepare Vulkan SDK for Ubuntu 22.04
if: contains(inputs.platform, 'ubuntu-22.04')
if: contains(inputs.platform, 'ubuntu-22.04') && !contains(inputs.platform, 'arm')
run: |
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.290-jammy.list https://packages.lunarg.com/vulkan/1.3.290/lunarg-vulkan-1.3.290-jammy.list
@ -198,7 +217,7 @@ jobs:
run: bun install --cpu=arm64
- name: rustup install target
if: ${{ inputs.target != '' && !contains(inputs.target, 'unknown-linux-gnu') && !contains(inputs.target, 'x86_64-pc-windows-msvc') }}
if: ${{ inputs.target != '' && !contains(inputs.target, 'x86_64-unknown-linux-gnu') && !contains(inputs.target, 'aarch64-unknown-linux-gnu') && !contains(inputs.target, 'x86_64-pc-windows-msvc') }}
run: rustup target add ${{ inputs.target }}
- name: import Apple Developer Certificate
@ -254,8 +273,8 @@ jobs:
AZURE_TENANT_ID: ${{ inputs.sign-binaries && secrets.AZURE_TENANT_ID || '' }}
TAURI_SIGNING_PRIVATE_KEY: ${{ inputs.sign-binaries && secrets.TAURI_SIGNING_PRIVATE_KEY || '' }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ inputs.sign-binaries && secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD || '' }}
WHISPER_NO_AVX: ${{ contains(inputs.platform, 'ubuntu') && 'ON' || '' }}
WHISPER_NO_AVX2: ${{ contains(inputs.platform, 'ubuntu') && 'ON' || '' }}
WHISPER_NO_AVX: ${{ contains(inputs.platform, 'ubuntu') && !contains(inputs.platform, 'arm') && 'ON' || '' }}
WHISPER_NO_AVX2: ${{ contains(inputs.platform, 'ubuntu') && !contains(inputs.platform, 'arm') && 'ON' || '' }}
with:
tagName: ${{ inputs.release-id && format('v{0}', steps.get-version.outputs.version) || '' }}
releaseName: ${{ inputs.release-id && format('v{0}', steps.get-version.outputs.version) || '' }}
@ -309,15 +328,21 @@ jobs:
ls "$dir" | grep -E "(wayland|fuse)" || echo " No wayland/fuse libraries found"
done
# Get appimagetool
wget -q https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
chmod +x appimagetool-x86_64.AppImage
# Detect architecture and get appropriate appimagetool
if [[ "$(uname -m)" == "aarch64" ]]; then
APPIMAGETOOL_ARCH="aarch64"
else
APPIMAGETOOL_ARCH="x86_64"
fi
wget -q "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-${APPIMAGETOOL_ARCH}.AppImage"
chmod +x "appimagetool-${APPIMAGETOOL_ARCH}.AppImage"
# Repackage AppImage with no-appstream to avoid warnings
ARCH=x86_64 ./appimagetool-x86_64.AppImage --no-appstream squashfs-root "$APPIMAGE_NAME"
ARCH="${APPIMAGETOOL_ARCH}" "./appimagetool-${APPIMAGETOOL_ARCH}.AppImage" --no-appstream squashfs-root "$APPIMAGE_NAME"
# Clean up
rm -rf squashfs-root appimagetool-x86_64.AppImage
rm -rf squashfs-root "appimagetool-${APPIMAGETOOL_ARCH}.AppImage"
echo "libwayland-client.so removed from AppImage successfully"
else

View file

@ -28,6 +28,9 @@ jobs:
- platform: "ubuntu-24.04"
args: "--bundles appimage,rpm"
target: "x86_64-unknown-linux-gnu"
- platform: "ubuntu-24.04-arm" # Build for ARM64 Linux
args: "--bundles appimage,deb,rpm"
target: "aarch64-unknown-linux-gnu"
- platform: "windows-latest"
args: ""
target: "x86_64-pc-windows-msvc"

View file

@ -58,6 +58,9 @@ jobs:
- platform: "ubuntu-24.04" # Build AppImage and RPM on 24.04
args: "--bundles appimage,rpm"
target: "x86_64-unknown-linux-gnu"
- platform: "ubuntu-24.04-arm" # Build for ARM64 Linux
args: "--bundles appimage,deb,rpm"
target: "aarch64-unknown-linux-gnu"
- platform: "windows-latest"
args: ""
target: "x86_64-pc-windows-msvc"