fix(cd): allow bounded rollout convergence
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 3m1s
CD Pipeline / build-and-deploy (push) Successful in 14m30s
CD Pipeline / post-deploy-checks (push) Successful in 4m34s
AI 技術雷達監控 / ai-technology-watch (push) Successful in 51s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 3m1s
CD Pipeline / build-and-deploy (push) Successful in 14m30s
CD Pipeline / post-deploy-checks (push) Successful in 4m34s
AI 技術雷達監控 / ai-technology-watch (push) Successful in 51s
This commit is contained in:
@@ -3083,11 +3083,13 @@ jobs:
|
|||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
|
||||||
# 確認 rollout 完成
|
# Two-replica rollouts can legitimately need more than two minutes
|
||||||
$KUBECTL rollout status deployment/awoooi-api -n awoooi-prod --timeout=120s
|
# before the second replacement is available. Keep this bounded, but
|
||||||
$KUBECTL rollout status deployment/awoooi-web -n awoooi-prod --timeout=120s
|
# do not abort before the independent boundary verifier can run.
|
||||||
$KUBECTL rollout status deployment/awoooi-worker -n awoooi-prod --timeout=120s
|
$KUBECTL rollout status deployment/awoooi-api -n awoooi-prod --timeout=300s
|
||||||
$KUBECTL rollout status deployment/awoooi-ansible-executor-broker -n awoooi-prod --timeout=120s
|
$KUBECTL rollout status deployment/awoooi-web -n awoooi-prod --timeout=300s
|
||||||
|
$KUBECTL rollout status deployment/awoooi-worker -n awoooi-prod --timeout=300s
|
||||||
|
$KUBECTL rollout status deployment/awoooi-ansible-executor-broker -n awoooi-prod --timeout=300s
|
||||||
echo "✅ 部署完成"
|
echo "✅ 部署完成"
|
||||||
|
|
||||||
# AIA-P0-011: production must prove that the public API cannot mutate
|
# AIA-P0-011: production must prove that the public API cannot mutate
|
||||||
|
|||||||
@@ -224,6 +224,18 @@ def test_cd_concurrency_probe_degrades_to_terminal_false_receipt() -> None:
|
|||||||
assert "workload DB identity/budget remains in progress" in workflow
|
assert "workload DB identity/budget remains in progress" in workflow
|
||||||
|
|
||||||
|
|
||||||
|
def test_cd_allows_bounded_rollout_convergence_before_boundary_verifier() -> None:
|
||||||
|
repo_root = Path(__file__).resolve().parents[3]
|
||||||
|
workflow = (repo_root / ".gitea/workflows/cd.yaml").read_text()
|
||||||
|
rollout_gate = workflow.split("# Two-replica rollouts", 1)[1].split(
|
||||||
|
"# AIA-P0-011:", 1
|
||||||
|
)[0]
|
||||||
|
|
||||||
|
assert rollout_gate.count("--timeout=300s") == 4
|
||||||
|
assert "--timeout=120s" not in rollout_gate
|
||||||
|
assert "independent boundary verifier" in rollout_gate
|
||||||
|
|
||||||
|
|
||||||
def test_broker_probe_accepts_partial_live_route_evidence(tmp_path: Path) -> None:
|
def test_broker_probe_accepts_partial_live_route_evidence(tmp_path: Path) -> None:
|
||||||
result = _run_broker_probe(
|
result = _run_broker_probe(
|
||||||
tmp_path,
|
tmp_path,
|
||||||
|
|||||||
Reference in New Issue
Block a user