- Add orchestration_tests.rs + mock_podman.rs (container unit tests) - Add container-tests.yml CI workflow - Add dev-container-test.sh for local testing - MASTER_PLAN.md: add TASK-49 (P0) with 6-phase plan - Login.vue: minor fixes from user testing - AppCard.vue: enter key handler fix Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
61 lines
1.7 KiB
YAML
61 lines
1.7 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: |
|
|
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: 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
|