Skip to content

fix(os): polish elizaOS live demo #82

fix(os): polish elizaOS live demo

fix(os): polish elizaOS live demo #82

name: ElizaOS OS release validation
on:
workflow_dispatch:
pull_request:
paths:
- ".github/workflows/elizaos-os-release.yml"
- "packages/os/**"
- "packages/os-homepage/**"
- "packages/os/usb-installer/**"
- "packages/os/setup/**"
jobs:
validate-os-release:
name: Validate OS release surfaces
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: "1.3.13"
- name: Install dependencies
run: bun install
- name: Validate OS release manifest
run: |
node --check packages/os/scripts/*.mjs
node packages/os/scripts/validate-release-manifest.mjs \
--manifest packages/os/release/beta-2026-05-16/manifest.json
node --test packages/os/scripts/__tests__/os-release-scripts.test.mjs
node packages/os/scripts/collect-release-evidence.mjs \
--manifest packages/os/release/beta-2026-05-16/manifest.json \
--output packages/os/release/beta-2026-05-16/evidence/ci-evidence.json
- name: Validate USB installer
run: |
bun run --cwd packages/os/usb-installer lint
bun run --cwd packages/os/usb-installer typecheck
bun run --cwd packages/os/usb-installer test
bun run --cwd packages/os/usb-installer build
- name: Validate Android installer
run: |
packages/os/android/installer/tests/run-tests.sh
node packages/os/android/installer/scripts/validate-release-manifest.mjs \
packages/os/android/installer/manifests/android-release-manifest.example.json
node packages/os/android/installer/scripts/validate-release-manifest.mjs \
packages/os/release/beta-2026-05-16/android-release-manifest.json \
--allow-placeholders
- name: Validate elizaos-setup (formerly aosp-flasher)
run: |
bun run --cwd packages/os/setup typecheck
bun run --cwd packages/os/setup build
- name: Validate Linux live USB metadata
run: |
cd packages/os/linux/variants/milady-tails
ELIZAOS_STATIC_SOURCE_ONLY=1 ./scripts/static-smoke.sh
- name: Validate OS homepage
run: |
bun run --cwd packages/os-homepage lint:check
bun run --cwd packages/os-homepage typecheck
bun run --cwd packages/os-homepage build
(cd packages/os-homepage && ../../node_modules/.bin/playwright install --with-deps chromium)
bun run --cwd packages/os-homepage test:e2e
- name: Capture homepage contact sheet
run: |
set -euo pipefail
bun --bun --cwd packages/os-homepage vite preview --host 127.0.0.1 --port 4455 &
echo $! > /tmp/os-homepage-preview.pid
ready=0
for i in {1..60}; do
if curl -fsS http://127.0.0.1:4455 >/dev/null; then
ready=1
break
fi
sleep 1
done
if [ "$ready" != "1" ]; then
echo "ERROR: os-homepage preview never came up on 127.0.0.1:4455"
kill "$(cat /tmp/os-homepage-preview.pid)" 2>/dev/null || true
exit 1
fi
bun run --cwd packages/os-homepage screenshots
kill "$(cat /tmp/os-homepage-preview.pid)" 2>/dev/null || true
- name: Upload release evidence
uses: actions/upload-artifact@v4
if: always()
with:
name: elizaos-os-release-validation
path: |
packages/os/release/beta-2026-05-16/evidence/**
packages/os/linux/vm/output/ci-bundle-metadata/**
packages/os-homepage/artifacts/screenshots/**
packages/os-homepage/test-results/**