dbb8f6e006713f43b7dbd6100d3b5c024dc72766
braney
  Fri Sep 18 11:11:15 2026 -0700
weeklybld: let the docker instance scripts run a past release, refs #38377

We could not reproduce a bug against the release a user is actually on.
hgwdev runs tip and the current release, and nothing older. Docker Hub
already has a per-release image, so the missing piece was a way to run one.

The lifecycle scripts now take a release name as well as tip, beta and rel.
run-instance.sh v503 starts the published v503 image as container kent-v503
on port 8503; the port is 8000 plus the release number, so the mapping needs
no table and no allocator. A release instance gets no CGI overlay, for the
same reason rel gets none: it has to be the code that shipped.
refresh-instance.sh, remove-instance.sh and smoke-instance.sh take the same
name. smoke-instance.sh checks a release instance against the version in its
own name, so no --version flag is needed. start-all.sh and stop-all.sh now
read the release containers that exist rather than a fixed list, so the set
of releases we keep can change without editing them.

tunnel-release.sh is one script for every release rather than one per
release, since that set changes.

v499 through v503 are running on hgwdev on ports 8499 through 8503 and pass
smoke-instance.sh. Five instances cost about 1.5 GB of memory, 10 GB of
docker disk, and no measurable CPU. They read tables from
genome-mysql.soe.ucsc.edu and files from hgdownload.soe.ucsc.edu, so they
put no load on the hgwdev MySQL or /gbdb.

diff --git src/utils/qa/weeklybld/start-all.sh src/utils/qa/weeklybld/start-all.sh
index 3a72d9f4819..c4106ecdc68 100755
--- src/utils/qa/weeklybld/start-all.sh
+++ src/utils/qa/weeklybld/start-all.sh
@@ -1,15 +1,23 @@
 #!/bin/bash
 #
-# start-all.sh - start the docker browser containers that exist (tip, rel, and
-# beta / beta-arm64 when present). Use after a manual stop-all; on reboot the
-# containers' --restart=unless-stopped policy brings them back on their own.
+# start-all.sh - start the docker browser containers that exist (tip, rel, the
+# beta / beta-arm64 pair when present, and every past-release instance). Use
+# after a manual stop-all; on reboot the containers' --restart=unless-stopped
+# policy brings them back on their own.
 # refs #37655
 #
 set -eu
 
-for name in tip rel beta beta-arm64; do
+# The release instances are whatever kent-vNNN containers exist, rather than a
+# list to keep in step with how many releases we are keeping. refs #38377
+names=(tip rel beta beta-arm64)
+while read -r c; do
+    names+=("${c#kent-}")
+done < <(docker ps -a --format '{{.Names}}' | grep -E '^kent-v[0-9]{3}$' | sort)
+
+for name in "${names[@]}"; do
     c="kent-$name"
     if docker container inspect "$c" >/dev/null 2>&1; then
         docker start "$c" >/dev/null && echo "started $c"
     fi
 done