Skip to content

ci: smoke install-sh-linux runs on native ubuntu (avoids checkout RES… #3

ci: smoke install-sh-linux runs on native ubuntu (avoids checkout RES…

ci: smoke install-sh-linux runs on native ubuntu (avoids checkout RES… #3

Workflow file for this run

name: smoke
# Install-matrix smoke tests — every PR + every push to main.
#
# Tests each user-facing install path against a clean environment and
# asserts that the dashboard answers HTTP 200 (the single user-visible
# acceptance criterion).
#
# - docker: fresh volume + docker run + curl /api/stats
# - install.sh (Linux): bash install.sh inside a python:3.12-slim
# container; verifies systemd unit files are written with substituted
# paths (no leftover placeholders).
# - install.sh (macOS): runs on macos-latest runner; checks plist
# substitution + no port-37737 conflict.
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
docker-single-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: docker pull → dashboard answers 200
run: bash tests/smoke/install-docker-pull.sh
install-sh-linux:
# Native ubuntu runner — its checkout uses local git, avoiding the
# REST-API code path that triggers GitHub's actions-abuse detection
# on containerised jobs.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: bash install.sh on bare ubuntu → unit files staged
env:
INSTALL_TEST_MODE: skip-heavy
TAM_MEMORY_DIR: ${{ github.workspace }}/.tam
run: |
bash install.sh --ide cursor 2>&1 | tail -20 || true
for u in tam-dashboard.service tam-reflection.service tam-reflection.path; do
f="$HOME/.config/systemd/user/$u"
test -f "$f" || { echo "FAIL: $u not staged"; exit 1; }
grep -q '@INSTALL_DIR@\|@MEMORY_DIR@\|__HOME__' "$f" \
&& { echo "FAIL: $u has leftover placeholders"; cat "$f"; exit 2; }
done
echo "✓ all unit files staged with substituted paths"
install-sh-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: install.sh smoke (sandbox HOME)
run: bash tests/smoke/install-sh-macos.sh