ci: the install rehearsal needs compose v2, and says so
deploy / test (push) Successful in 4m23s
deploy / build (push) Successful in 57s

The v1 fallback I added a commit ago cannot work: deploy/compose/docker-compose.yml
uses v2-only syntax — a top-level `name:` and long-form
`env_file: {path, required}` — so docker-compose 1.29 rejects the file outright
("'name' does not match any of the regexes"). A fallback that always fails is
worse than no fallback, so the script now requires v2 and fails immediately with
what to do about it.

$COMPOSE overrides the detection. gw-04 is deliberately left WITHOUT a
`docker compose` plugin: installing one system-wide would flip the production
rolling deploy (clawmates-deploy.sh prefers v2 when present) off docker-compose
v1 as an invisible side effect of a release change. The runner gets a standalone
v2 binary at /opt/act-runner/bin/docker-compose and the workflow passes it in,
so prod keeps rolling exactly as it did.

Verified on gw-04: standalone v2.32.4 runs, and `docker compose` still resolves
to nothing, so clawmates-deploy.sh takes its v1 branch unchanged.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Omar Sobh
2026-08-13 15:22:29 -07:00
co-authored by Claude Opus 5
parent 9441cf401c
commit 41854c70e1
2 changed files with 28 additions and 10 deletions
+8 -1
View File
@@ -157,7 +157,14 @@ jobs:
docker tag "clawmates/broker:$VERSION" clawmates/broker:latest
# Absolute path: the script cds around, and it needs the binary we
# already built rather than a cargo this host does not have.
CLAWMATES_BUNDLER="$PWD/.tools/clawmates-bundler" ./scripts/rehearse-install.sh
# COMPOSE points at a STANDALONE v2 binary. gw-04 intentionally has no
# `docker compose` plugin: installing one would switch the production
# rolling deploy (clawmates-deploy.sh) off docker-compose v1 as a side
# effect. The compose file needs v2 syntax, so the rehearsal gets its
# own copy rather than changing what prod rolls with.
CLAWMATES_BUNDLER="$PWD/.tools/clawmates-bundler" \
COMPOSE=/opt/act-runner/bin/docker-compose \
./scripts/rehearse-install.sh
# Gitea's release API, not softprops/action-gh-release (GitHub-only).
# Create-or-reuse, so a re-run of the same tag updates instead of 409ing.