дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 19:25:54 +02:00
61 рядки
2.2 KiB
YAML
61 рядки
2.2 KiB
YAML
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/
|