Critical: - fix: container installs fail with "statfs: no such file or directory" Root cause: NoNewPrivileges=yes in systemd blocks sudo inside backend. Fix: use std::fs::create_dir_all + podman unshare chown (no sudo needed) - fix: Tor services.json never written — \$ARCHY_TOR_DIR escaping bug - fix: kiosk white screen — increase health wait to 60s, add --disable-gpu Improvements: - feat: LUKS encryption badge in Server disk stats (backend detects dm-crypt) - fix: GRUB theme text scaling on 4:3 monitors — explicit fonts, wider menu - fix: suppress default Debian MOTD (custom profile.d welcome is enough) - fix: install error messages now show "Failed to pull/start" instead of generic "Operation failed" (middleware.rs allowlist expanded) - fix: container-tests CI — source cargo env before running tests - docs: interactive container architecture diagram (HTML) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
name: Container Orchestration Tests
|
|
on:
|
|
push:
|
|
branches: [dev-iso, main]
|
|
paths:
|
|
- 'core/archipelago/src/**'
|
|
- 'core/container/src/**'
|
|
- 'scripts/container-*.sh'
|
|
- 'scripts/reconcile-*.sh'
|
|
- 'scripts/image-versions.sh'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
unit-tests:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Cache cargo registry
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
core/target
|
|
key: cargo-test-${{ hashFiles('core/Cargo.lock') }}
|
|
|
|
- name: Run orchestration unit tests
|
|
working-directory: core
|
|
run: |
|
|
source $HOME/.cargo/env 2>/dev/null || true
|
|
echo "=== Container crate tests ==="
|
|
cargo test -p archipelago-container --no-fail-fast 2>&1
|
|
|
|
echo ""
|
|
echo "=== Orchestration integration tests ==="
|
|
cargo test --test orchestration_tests --no-fail-fast 2>&1
|
|
|
|
- name: Verify cargo check (full crate)
|
|
working-directory: core
|
|
run: |
|
|
source $HOME/.cargo/env 2>/dev/null || true
|
|
cargo check --release 2>&1
|
|
|
|
smoke-tests:
|
|
runs-on: ubuntu-latest
|
|
needs: unit-tests
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Run container smoke tests on .228
|
|
env:
|
|
ARCHIPELAGO_SSH_KEY: ~/.ssh/archipelago-deploy
|
|
run: |
|
|
# Only run if SSH key exists (CI runner has deploy access)
|
|
if [ -f "$ARCHIPELAGO_SSH_KEY" ]; then
|
|
bash scripts/dev-container-test.sh --once
|
|
else
|
|
echo "⚠ SSH key not available — skipping live smoke tests"
|
|
echo " To enable: add archipelago-deploy key to CI runner"
|
|
fi
|