archy/.gitea/workflows/container-tests.yml
Dorian 46c50961c2 feat: TASK-49 container reliability — tests, orchestration, MASTER_PLAN
- 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>
2026-03-29 17:15:56 +01:00

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