Skip to content

desktop: stop cutting off the last row; default font 15 (0.2.5) #19

desktop: stop cutting off the last row; default font 15 (0.2.5)

desktop: stop cutting off the last row; default font 15 (0.2.5) #19

Workflow file for this run

name: ci
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- run: bun install --frozen-lockfile
- run: bun test
- run: bunx tsc -p .
- run: sh -n install.sh && bash -n install.sh
- run: bun build --compile src/main.ts --outfile dist/hqterm && ./dist/hqterm --version
desktop:
runs-on: ubuntu-latest
defaults:
run:
working-directory: desktop
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npm test
- name: Build AppImage
run: npm run dist
- name: Smoke test under Xvfb (window, PTYs, images, split, layout restore)
run: |
ls -la dist
app="$(ls dist/*.AppImage | head -n1)"
smoke() {
HQTERM_DESKTOP_SMOKE=10000 HQTERM_DESKTOP_SMOKE_SHOT="$PWD/$1" XDG_CONFIG_HOME="$RUNNER_TEMP/cfg" \
xvfb-run -a -s "-screen 0 1280x800x24" "$app" --appimage-extract-and-run --no-sandbox 2>&1 | grep -v appimage_extracted | tee "$1.log"
}
# First launch: one shell, then Ctrl+Shift+D splits it (2 PTYs).
smoke smoke-1.png
grep -q "hqterm-desktop smoke: ok (ptys=2)" smoke-1.png.log
cat "$RUNNER_TEMP/cfg/hqterm/desktop-layout.json"
# Second launch restores both panes, then splits again (3 PTYs).
smoke smoke-2.png
grep -q "hqterm-desktop smoke: ok (ptys=3)" smoke-2.png.log
- uses: actions/upload-artifact@v4
if: always()
with:
name: hqterm-desktop-smoke-screenshot
path: desktop/smoke-*.png
retention-days: 7
- uses: actions/upload-artifact@v4
with:
name: hqterm-desktop-linux-x86_64
path: desktop/dist/*.AppImage
retention-days: 7