From 6bf0425f50b3db54a591a6214615d1029b91f553 Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 29 May 2026 19:27:35 +0100 Subject: [PATCH] =?UTF-8?q?fix(2):=20Q4.2=20mumble=20=E2=80=94=20provide?= =?UTF-8?q?=20host-ports=20overlay=20for=20every=20version=20via=20install?= =?UTF-8?q?=5Fsteps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The upstream compose.host-ports.yml exists only from v1.0.0+, but the upgrade-tier base deploy is the previous published version (0.2.0+), which predates it — so EXTRA_ENV's COMPOSE_FILE failed to resolve on the base deploy (config --images rc=14, deploy FATA). install_steps.sh now copies a cc-ci-owned identical overlay into the recipe checkout when absent, so 64738 is host-published for every version (base + upgrade) and on-host protocol tests reach 127.0.0.1:64738. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/mumble/compose.host-ports.yml | 19 +++++++++++++++++++ tests/mumble/install_steps.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 tests/mumble/compose.host-ports.yml create mode 100644 tests/mumble/install_steps.sh diff --git a/tests/mumble/compose.host-ports.yml b/tests/mumble/compose.host-ports.yml new file mode 100644 index 0000000..dd246ee --- /dev/null +++ b/tests/mumble/compose.host-ports.yml @@ -0,0 +1,19 @@ +--- +# cc-ci-owned copy of the upstream mumble `compose.host-ports.yml` overlay (identical content). +# Provided to the recipe checkout by tests/mumble/install_steps.sh so that 64738 is published on the +# cc-ci host for EVERY version under test — the upstream overlay only exists from recipe version +# 1.0.0+, but the upgrade tier's base deploy is the previous published version (0.2.0+), which +# predates it. On-host tests (cc-ci-run) reach the voice server at 127.0.0.1:64738 via this publish. +version: "3.8" + +services: + app: + ports: + - target: 64738 + published: 64738 + protocol: tcp + mode: host + - target: 64738 + published: 64738 + protocol: udp + mode: host diff --git a/tests/mumble/install_steps.sh b/tests/mumble/install_steps.sh new file mode 100644 index 0000000..1074fa8 --- /dev/null +++ b/tests/mumble/install_steps.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# mumble — INSTALL-TIME hook (Phase 2 Q4.2). Runs during the install tier AFTER `abra app new` + +# EXTRA_ENV + `abra app secret generate` and BEFORE the single `abra app deploy` +# (lifecycle.py::_run_install_steps), with CCCI_RECIPE / CCCI_APP_DOMAIN / CCCI_APP_ENV in env. +# +# Purpose: guarantee `compose.host-ports.yml` exists in the recipe checkout for EVERY version under +# test. mumble's voice server speaks a non-HTTP TLS protocol on 64738; cc-ci's tests run on-host +# (cc-ci-run) and reach it at 127.0.0.1:64738 via a host-published port. The upstream recipe ships +# compose.host-ports.yml only from version 1.0.0+, but the upgrade tier's base deploy is the previous +# published version (0.2.0+), which predates it — so EXTRA_ENV's COMPOSE_FILE (which references the +# overlay) would fail to resolve on that base deploy. We provide an identical overlay here so the +# overlay is present whether the checked-out version ships it natively (no-op) or not (copied). +set -euo pipefail + +: "${CCCI_RECIPE:?missing CCCI_RECIPE}" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +RECIPE_DIR="${HOME}/.abra/recipes/${CCCI_RECIPE}" + +if [ ! -d "$RECIPE_DIR" ]; then + echo " mumble install_steps: recipe dir $RECIPE_DIR missing — cannot provide host-ports overlay" >&2 + exit 1 +fi + +if [ -f "$RECIPE_DIR/compose.host-ports.yml" ]; then + echo " mumble install_steps: compose.host-ports.yml already present (native to this version)" +else + cp "$SCRIPT_DIR/compose.host-ports.yml" "$RECIPE_DIR/compose.host-ports.yml" + echo " mumble install_steps: provided compose.host-ports.yml to recipe checkout (${CCCI_RECIPE})" +fi