Files
archy/.gitea/workflows/container-tests.yml
Dorian 031b3c34f4
All checks were successful
Build Archipelago ISO (dev) / build-iso (push) Successful in 52m6s
Container Orchestration Tests / unit-tests (push) Successful in 29m20s
Container Orchestration Tests / smoke-tests (push) Successful in 6m18s
fix: container installs, Tor, kiosk, GRUB, LUKS display, error messages
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>
2026-03-30 16:35:06 +01:00

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