Course correction (REVIEW-2 bdef282) mandates upgrade-to-latest; harness base-deploys
prev published version 1.1.1+6-alpine which predates the recipe-PR 15m start_period bump
(ships 1m) → would deadlock on the ~6-9min fresh-DB migration (swarm kill mid-migration →
held migrations_lock). Policy-blessed minimal base overlay: compose.ccci.yml re-applies the
15m app-healthcheck start_period grace to the BASE so the from-version is deployable;
install_steps.sh provides it; CHAOS_BASE_DEPLOY skips clean-tree on the untracked overlay;
persists across head checkout (idempotent — PR head ships 15m). Grace-only, no test weakened.
Prior corrupt mysql vol (stale, interrupted init) torn down. Next: full run incl upgrade.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
1.5 KiB
Bash
Executable File
27 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ghost — INSTALL-TIME hook (Phase 2 F2-14b). 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 in env.
|
|
#
|
|
# Purpose: provide the cc-ci start_period-grace overlay (compose.ccci.yml) to the recipe checkout so
|
|
# the UPGRADE-tier BASE deploy (a previous published version whose app healthcheck still ships the
|
|
# too-tight 1m start_period) can survive ghost's ~6-9min fresh-DB migration and converge. See
|
|
# compose.ccci.yml's header for the full rationale. The overlay is referenced by recipe_meta
|
|
# COMPOSE_FILE; copying it here (it is a cc-ci file, not part of the recipe) makes it resolvable.
|
|
# It persists across the later `git checkout <head>` (untracked) so the head deploy also merges it
|
|
# (idempotent — the PR head already ships 15m). CHAOS_BASE_DEPLOY=True is set so abra's pinned-deploy
|
|
# clean-tree check doesn't FATA on the untracked overlay.
|
|
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 " ghost install_steps: recipe dir $RECIPE_DIR missing — cannot provide compose.ccci.yml" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cp "$SCRIPT_DIR/compose.ccci.yml" "$RECIPE_DIR/compose.ccci.yml"
|
|
echo " ghost install_steps: provided compose.ccci.yml (app start_period grace) to recipe checkout (${CCCI_RECIPE})"
|