amsd-pipeline 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/install.sh +17 -10
  2. package/package.json +1 -1
package/install.sh CHANGED
@@ -891,7 +891,16 @@ else
891
891
  # ...and make them writable by the uid the CONTAINER runs as. Creating them as the host user
892
892
  # is the whole fix under docker, where those uids are the same. Under rootless podman they are
893
893
  # not, and the mkdir above reproduces the very failure this block exists to prevent.
894
- ensure_bind_mount_ownership "$LAUNCH_DIR/data" "$LAUNCH_DIR/spool"
894
+ # ./data is the container's own database — it may own that outright.
895
+ ensure_bind_mount_ownership "$LAUNCH_DIR/data"
896
+ # ./spool is the boundary the HOST runner writes; it must stay writable from both sides.
897
+ # ITS FAILURE IS THE INSTALL'S FAILURE. When this silently did nothing, the install carried on
898
+ # and runner-host.js died minutes later on "EACCES: mkdir .../spool/requests" — a symptom three
899
+ # steps from its cause. Say it where it happens.
900
+ if ! ensure_shared_bind_mount "$LAUNCH_DIR/spool"; then
901
+ _bad "spool is not writable by both the host runner and the container — the dashboard can queue no runs"
902
+ FAILED=1
903
+ fi
895
904
 
896
905
  _LD_PORT="$(grep -E '^LAUNCH_UI_PORT=' "$LAUNCH_DIR/.env" 2>/dev/null | tail -1 | cut -d= -f2)"
897
906
  _LD_PORT="${_LD_PORT:-8099}"
@@ -943,18 +952,16 @@ else
943
952
  # 2026-09-07 under podman-compose: launch-ui kept a stale image and a stale network mode
944
953
  # after both were changed, so the install re-tested exactly what it had just replaced and
945
954
  # reported the old failure. A down first costs seconds and makes the up mean something.
955
+ # --force-recreate: `up -d --build` alone leaves an EXISTING container untouched even when
956
+ # the compose file that defined it has changed, so a re-install silently kept the previous
957
+ # install's image, network mode and published port. Live 2026-09-07: the dashboard answered
958
+ # on 8099 while this install health-checked 8109, and a rebuilt UI image was never used.
959
+ # A flag rather than an extra `down` — the retry below already tears down between its own
960
+ # attempts, and a second teardown here changes what one attempt means.
946
961
  for _LD_SUBNET in $(isolated_subnet_candidates "$ROOT-launch"); do
947
962
  _LD_TRY_PORT=$((_LD_PORT + _LD_I * 10))
948
- # EVERY ATTEMPT STARTS CLEAN. `up -d --build` leaves an EXISTING container alone, so a
949
- # retry's new port/subnet is silently ignored and the stack stays on the previous
950
- # attempt's values — live 2026-09-07: attempt 0 published 8099, attempt 1 raised the
951
- # port to 8109, compose reused the containers, and the installer then health-checked
952
- # 8109 while the dashboard answered perfectly on 8099. The same trap the observability
953
- # stack's retry was already fixed for; this loop never got it.
954
- (cd "$LAUNCH_DIR" && container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" down) \
955
- >/dev/null 2>&1 || true
956
963
  if (cd "$LAUNCH_DIR" && LAUNCH_SUBNET="$_LD_SUBNET" LAUNCH_UI_PORT="$_LD_TRY_PORT" \
957
- container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" up -d --build) >"$_LD_LOG" 2>&1; then
964
+ container_compose -f "$LAUNCH_COMPOSE" -p "$_LD_PROJECT" up -d --build --force-recreate) >"$_LD_LOG" 2>&1; then
958
965
  _LD_UP=0
959
966
  _LD_PORT="$_LD_TRY_PORT"
960
967
  _LD_HEALTH_URL="http://localhost:${_LD_PORT}/api/health"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amsd-pipeline",
3
- "version": "2.0.5",
3
+ "version": "2.0.7",
4
4
  "description": "Installer for the amsd-pipeline orchestration stack. Clones, packages and provisions the full stack with one command — no separate git clone step.",
5
5
  "bin": {
6
6
  "amsd-pipeline": "bin/amsd-pipeline.js"