feat(mumble F2-14c): drop cc-ci compose.host-ports.yml fork; deploy 0.2.0 base minimally, add native host-ports on upgrade-to-latest via new UPGRADE_EXTRA_ENV harness hook + COMPOSE_FILE-aware READY_PROBE/install skip

This commit is contained in:
autonomic-bot
2026-05-31 05:07:44 +00:00
parent e3720bedf3
commit 4bf9e1d43d
8 changed files with 101 additions and 80 deletions

View File

@ -2,16 +2,35 @@
install tier (which proves the mumble-web HTTP sidecar serves over Traefik — the readiness signal).
This overlay ADDS the assertion that mumble's actual purpose — the voice server — is up: the murmur
control channel accepts a TLS connection on the host-published 64738 right after install. (The full
protocol handshake + channel presence is exercised in the custom tier; here we assert the install
produced a listening voice server, not only a web UI.)
control channel accepts a TLS connection on the host-published 64738.
F2-14c: the install tier runs against the upgrade BASE, which is the previous published version
0.2.0+v1.6.870-0. That version PREDATES compose.host-ports.yml (added upstream in 1.0.0), so the base
deploys minimally without it and the voice port is NOT host-published — this on-host voice check is then
not applicable on the base and is SKIPPED (recorded). The voice server is asserted listening on the
post-upgrade LATEST via the READY_PROBE (tcp 3x, gates backup) and the custom-tier full TLS protocol
handshake. When this overlay runs against a host-ports deploy (latest), it asserts the listening server.
"""
import os
import socket
import sys
import time
import pytest
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "runner"))
from harness import abra # noqa: E402
def test_voice_server_listening(live_app):
cf = abra.env_get(live_app, "COMPOSE_FILE") or ""
if "compose.host-ports.yml" not in cf:
pytest.skip(
"upgrade base (0.2.0) predates compose.host-ports.yml (added in 1.0.0) → voice port not "
"host-published; voice listening asserted on post-upgrade latest (READY_PROBE tcp 3x + "
"custom-tier protocol handshake)"
)
deadline = time.time() + 120
last_err = None
while time.time() < deadline: