electron-tests/.gitea/workflows/electron-linux-arm64.yml
OpenClaw Bot 2c449514be
All checks were successful
electron-linux-arm64 / electron-linux-arm64 (push) Successful in 1m0s
electron-linux-amd64 / electron-linux-amd64 (push) Successful in 1m33s
ci: emit single self-launching AppImage artifact (no extra files, no host FUSE required)
2026-03-14 21:36:43 +00:00

73 lines
2.3 KiB
YAML

name: electron-linux-arm64
on:
push:
branches: [ main ]
tags: [ 'v*' ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
electron-linux-arm64:
runs-on: arm64-native
steps:
- uses: actions/checkout@v4
- name: Install Linux packages for electron build
run: |
set -eu
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
build-essential curl git python3 python3-pip xz-utils libgtk-3-0 libnotify4 libnss3 libxss1 libasound2 libatk1.0-0 libatk-bridge2.0-0 libglib2.0-0 libx11-6 libgdk-pixbuf2.0-0 libpango-1.0-0 libxrandr2 libxinerama1 libxcursor1 libxi6 libfontconfig1
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install npm dependencies
run: |
set -eu
npm ci
- name: Build AppImage (arm64)
run: |
set -eu
npm run build:linux:arm64
- name: Collect single consumer artifact (no-FUSE compatible)
run: |
set -eu
rm -rf artifacts
mkdir -p artifacts
appimage=$(find dist -maxdepth 1 -type f -name '*.AppImage' | head -n 1 || true)
[ -n "$appimage" ] || { echo 'AppImage missing'; exit 1; }
out="artifacts/electron_tray_demo-linux-arm64-run${{ github.run_number }}.AppImage"
cat > "$out" <<'SH'
#!/usr/bin/env sh
set -eu
self="$0"
workdir="$(mktemp -d)"
cleanup() { rm -rf "$workdir"; }
trap cleanup EXIT INT TERM
payload="$workdir/app.AppImage"
awk 'found { print } /^__APPIMAGE_PAYLOAD_BELOW__$/ { found=1; next }' "$self" | base64 -d > "$payload"
chmod +x "$payload"
APPIMAGE_EXTRACT_AND_RUN=1 "$payload" "$@"
exit $?
__APPIMAGE_PAYLOAD_BELOW__
SH
# remove YAML indentation from embedded launcher script
sed -i 's/^ //' "$out"
base64 -w 0 "$appimage" >> "$out"
echo >> "$out"
chmod +x "$out"
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: electron_tray_demo-linux-arm64-run${{ github.run_number }}
path: artifacts/
retention-days: 14