fix: tech-debt: init --dry-run shows batch seed→deploy but real run is interleaved (#950)
This commit is contained in:
parent
9bb9be450a
commit
d14ae52bef
1 changed files with 17 additions and 34 deletions
51
bin/disinto
51
bin/disinto
|
|
@ -783,39 +783,8 @@ _disinto_init_nomad() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$with_services" ]; then
|
if [ -n "$with_services" ]; then
|
||||||
# Vault seed plan (S2.6, #928): one line per service whose
|
# Interleaved seed/deploy per service (S2.6, #928, #948): match the
|
||||||
# tools/vault-seed-<svc>.sh ships. Sub-services (woodpecker-server,
|
# real-run path so dry-run output accurately represents execution order.
|
||||||
# woodpecker-agent) map to their parent seeder (vault-seed-woodpecker.sh).
|
|
||||||
# Deduplicated so the seeder runs once even when both sub-services
|
|
||||||
# are present.
|
|
||||||
local seed_hdr_printed=false
|
|
||||||
local _seed_seen=""
|
|
||||||
local IFS=','
|
|
||||||
for svc in $with_services; do
|
|
||||||
svc=$(echo "$svc" | xargs) # trim whitespace
|
|
||||||
# Map sub-services to parent seed name
|
|
||||||
local seed_name="$svc"
|
|
||||||
case "$svc" in
|
|
||||||
woodpecker-server|woodpecker-agent) seed_name="woodpecker" ;;
|
|
||||||
agents) seed_name="agents" ;;
|
|
||||||
esac
|
|
||||||
# Deduplicate
|
|
||||||
if echo ",$_seed_seen," | grep -q ",$seed_name,"; then continue; fi
|
|
||||||
_seed_seen="${_seed_seen:+${_seed_seen},}${seed_name}"
|
|
||||||
local seed_script="${FACTORY_ROOT}/tools/vault-seed-${seed_name}.sh"
|
|
||||||
if [ -x "$seed_script" ]; then
|
|
||||||
if [ "$seed_hdr_printed" = false ]; then
|
|
||||||
echo "── Vault seed dry-run ─────────────────────────────────"
|
|
||||||
seed_hdr_printed=true
|
|
||||||
fi
|
|
||||||
echo "[seed] [dry-run] ${seed_script} --dry-run"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[ "$seed_hdr_printed" = true ] && echo ""
|
|
||||||
|
|
||||||
echo "── Deploy services dry-run ────────────────────────────"
|
|
||||||
echo "[deploy] services to deploy: ${with_services}"
|
|
||||||
|
|
||||||
# Build ordered deploy list: only include services present in with_services
|
# Build ordered deploy list: only include services present in with_services
|
||||||
local DEPLOY_ORDER=""
|
local DEPLOY_ORDER=""
|
||||||
for ordered_svc in forgejo woodpecker-server woodpecker-agent agents; do
|
for ordered_svc in forgejo woodpecker-server woodpecker-agent agents; do
|
||||||
|
|
@ -823,10 +792,24 @@ _disinto_init_nomad() {
|
||||||
DEPLOY_ORDER="${DEPLOY_ORDER:+${DEPLOY_ORDER} }${ordered_svc}"
|
DEPLOY_ORDER="${DEPLOY_ORDER:+${DEPLOY_ORDER} }${ordered_svc}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "[deploy] deployment order: ${DEPLOY_ORDER}"
|
|
||||||
|
|
||||||
local IFS=' '
|
local IFS=' '
|
||||||
for svc in $DEPLOY_ORDER; do
|
for svc in $DEPLOY_ORDER; do
|
||||||
|
# Seed this service (if seed script exists)
|
||||||
|
local seed_name="$svc"
|
||||||
|
case "$svc" in
|
||||||
|
woodpecker-server|woodpecker-agent) seed_name="woodpecker" ;;
|
||||||
|
agents) seed_name="agents" ;;
|
||||||
|
esac
|
||||||
|
local seed_script="${FACTORY_ROOT}/tools/vault-seed-${seed_name}.sh"
|
||||||
|
if [ -x "$seed_script" ]; then
|
||||||
|
echo "── Vault seed dry-run ─────────────────────────────────"
|
||||||
|
echo "[seed] [dry-run] ${seed_script} --dry-run"
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Deploy this service
|
||||||
|
echo "── Deploy services dry-run ────────────────────────────"
|
||||||
local jobspec_path="${FACTORY_ROOT}/nomad/jobs/${svc}.hcl"
|
local jobspec_path="${FACTORY_ROOT}/nomad/jobs/${svc}.hcl"
|
||||||
if [ ! -f "$jobspec_path" ]; then
|
if [ ! -f "$jobspec_path" ]; then
|
||||||
echo "Error: jobspec not found: ${jobspec_path}" >&2
|
echo "Error: jobspec not found: ${jobspec_path}" >&2
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue