build: verify native Windows and Linux ARM64 bundles

This commit is contained in:
l0ng-ai committed 2026-10-31 10:04:20 +08:00
1 parent 4a620122e8
commit d91f851eeb
2 files changed
+66

No files matched your search

+60
View File
@@ -0,0 +1,60 @@
name: ARM64 verification
on:
push:
branches: [feat/arm64-builds]
jobs:
bundle:
strategy:
fail-fast: false
matrix:
include:
- os: windows-11-arm
target: aarch64-pc-windows-msvc
- os: ubuntu-22.04-arm
target: aarch64-unknown-linux-gnu
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with: { version: 11 }
- uses: actions/setup-node@v4
with: { node-version: 22, cache: pnpm }
- uses: dtolnay/rust-toolchain@stable
with: { targets: "${{ matrix.target }}" }
- uses: Swatinem/rust-cache@v2
with: { key: "${{ matrix.target }}" }
- name: Linux deps
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev libssl-dev patchelf
- run: pnpm install --frozen-lockfile
- run: cargo test --locked -p ide-tools
- uses: tauri-apps/tauri-action@v0
with:
args: --target ${{ matrix.target }} --config '{"bundle":{"createUpdaterArtifacts":false}}'
- name: Inspect architecture
shell: bash
run: |
python - <<'PYTHON'
import pathlib, struct
root = pathlib.Path('target/${{ matrix.target }}/release')
if '${{ runner.os }}' == 'Windows':
binary = root / 'openidea.exe'
data = binary.read_bytes()
offset = struct.unpack_from('<I', data, 0x3c)[0]
machine = struct.unpack_from('<H', data, offset + 4)[0]
assert machine == 0xaa64, hex(machine)
else:
binary = root / 'openidea'
data = binary.read_bytes()
assert data[:4] == b'\x7fELF'
assert struct.unpack_from('<H', data, 18)[0] == 183
print(binary, 'ARM64 verified')
for path in sorted((root / 'bundle').rglob('*')):
if path.is_file(): print(path)
PYTHON
- uses: actions/upload-artifact@v4
with:
name: bundles-${{ matrix.target }}
path: target/${{ matrix.target }}/release/bundle/
+6
View File
@@ -70,6 +70,12 @@ jobs:
- name: Linux x64
os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
- name: Linux arm64
os: ubuntu-22.04-arm
target: aarch64-unknown-linux-gnu
- name: Windows arm64
os: windows-11-arm
target: aarch64-pc-windows-msvc
- name: Windows x64
os: windows-latest
target: x86_64-pc-windows-msvc