fix: forward Java deployment migration and smoke settings
Co-Authored-By: Codex <noreply@openai.com> Signed-off-by: James Maes <james@kof22.com>
This commit is contained in:
5 files changed
+73
No files matched your search
@@ -1,3 +1,16 @@
|
||||
## Java deployment health parameter correction (2026-10-19)
|
||||
|
||||
Backend develop job 6405 exposed missing migration/smoke configuration in the
|
||||
shared Java deployment partial: startup failed because slack_template was absent.
|
||||
The partial now forwards health_migrations and health_smoke_paths just like the
|
||||
production and release workflows. No application or scan policy changes.
|
||||
|
||||
tests/test_java_deploy_health.sh checks configured values and empty defaults in
|
||||
develop, staging, production and release-candidate using both source and packed
|
||||
generators. Full make all, 20 BATS tests, focused regression rerun and shell lint
|
||||
passed through WSL. Packed scripts are synchronized. Publication and consumer
|
||||
verification are pending.
|
||||
|
||||
## Verified agile CI rollout (2026-10-19)
|
||||
|
||||
Munitor 0.3.10 is published from main 19192d07 (PR48 implementation, PR49 release,
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
## Pending
|
||||
|
||||
- [ ] Validate and release Java develop/staging health_migrations and health_smoke_paths propagation; verify both generators and a corrected consumer build before claiming rollout success.
|
||||
|
||||
- [x] Publish 0.3.10, adopt in backend PR333, verify aggregate check names and migrate required lists; docs PR335 passed in 5m23 and native cancellation was observed (docs/PLAN-agile-ci.md).
|
||||
|
||||
- [x] Publish fast Java CI as 0.3.9; backend PR330 adopted it and measured the warm workflow at 20m45 (from 37m04).
|
||||
|
||||
@@ -2694,6 +2694,8 @@ cat > /tmp/munitor/templates/partials/java-webapp-deploy.yml.tpl << 'MUNITOR_PAR
|
||||
health_path: ${MUNITOR_HEALTH_PATH}
|
||||
health_port: "${MUNITOR_HEALTH_PORT}"
|
||||
health_db: "${MUNITOR_HEALTH_DB}"
|
||||
health_migrations: "${MUNITOR_HEALTH_MIGRATIONS}"
|
||||
health_smoke_paths: "${MUNITOR_HEALTH_SMOKE_PATHS}"
|
||||
##IF_SUPPLEMENTAL##
|
||||
supplemental_images: '${MUNITOR_SUPPLEMENTAL_IMAGES_JSON}'
|
||||
##ENDIF_SUPPLEMENTAL##
|
||||
|
||||
@@ -66,6 +66,8 @@
|
||||
health_path: ${MUNITOR_HEALTH_PATH}
|
||||
health_port: "${MUNITOR_HEALTH_PORT}"
|
||||
health_db: "${MUNITOR_HEALTH_DB}"
|
||||
health_migrations: "${MUNITOR_HEALTH_MIGRATIONS}"
|
||||
health_smoke_paths: "${MUNITOR_HEALTH_SMOKE_PATHS}"
|
||||
##IF_SUPPLEMENTAL##
|
||||
supplemental_images: '${MUNITOR_SUPPLEMENTAL_IMAGES_JSON}'
|
||||
##ENDIF_SUPPLEMENTAL##
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# Verify deployment health configuration reaches source and shipped generators.
|
||||
set -euo pipefail
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WORK=$(mktemp -d)
|
||||
trap 'rm -rf -- "$WORK"' EXIT
|
||||
export CIRCLE_BRANCH=develop CIRCLE_TAG=""
|
||||
cp "${SCRIPT_DIR}/fixtures/java-webapp.munitor.yml" "${WORK}/defaults.yml"
|
||||
cp "${WORK}/defaults.yml" "${WORK}/configured.yml"
|
||||
cat >>"${WORK}/configured.yml" <<'YAML'
|
||||
health:
|
||||
path: /health/ready
|
||||
port: 8181
|
||||
db: "true"
|
||||
migrations: migrations
|
||||
smoke_paths:
|
||||
- /api/templates
|
||||
- /api/version
|
||||
YAML
|
||||
|
||||
# Packed helpers share /tmp/munitor; run these generators sequentially.
|
||||
for generator in generate_config.sh packed_generate_config.sh; do
|
||||
for mode in configured defaults; do
|
||||
MUNITOR_CONFIG="${WORK}/${mode}.yml" MUNITOR_OUTPUT_FILE="${WORK}/generated.yml" \
|
||||
bash "${SCRIPT_DIR}/../src/scripts/${generator}" >"${WORK}/generator.log" 2>&1 || {
|
||||
cat "${WORK}/generator.log"
|
||||
exit 1
|
||||
}
|
||||
yq -o=json '.' "${WORK}/generated.yml" >"${WORK}/generated.json"
|
||||
python3 - "${WORK}/generated.json" "$mode" <<'PY'
|
||||
import json
|
||||
import sys
|
||||
|
||||
with open(sys.argv[1], encoding='utf-8') as source:
|
||||
workflows = json.load(source)['workflows']
|
||||
expected = {'health_migrations': '', 'health_smoke_paths': ''}
|
||||
if sys.argv[2] == 'configured':
|
||||
expected = {
|
||||
'health_path': '/health/ready',
|
||||
'health_port': '8181',
|
||||
'health_db': 'true',
|
||||
'health_migrations': 'migrations',
|
||||
'health_smoke_paths': '/api/templates,/api/version',
|
||||
}
|
||||
for workflow in ('develop', 'staging', 'production', 'release-candidate'):
|
||||
jobs = [job['munitor/docker_build_push'] for job in workflows[workflow]['jobs']
|
||||
if isinstance(job, dict) and 'munitor/docker_build_push' in job]
|
||||
assert len(jobs) == 1, (workflow, 'expected one Docker build job', jobs)
|
||||
for parameter, value in expected.items():
|
||||
assert jobs[0].get(parameter) == value, (workflow, parameter, jobs[0].get(parameter), value)
|
||||
PY
|
||||
printf 'PASS: %s %s deployment health parameters\n' "$generator" "$mode"
|
||||
done
|
||||
done
|
||||
Reference in new issue
Block a user