Compare commits

...

11 Commits

Author SHA1 Message Date
Barcode Betty 0f375815f2 Merge pull request 'fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438) [uat→main]' (#49) from uat into main
CI / build-and-push (push) Successful in 11s
CI / deploy-dev (push) Successful in 7s
CI / deploy-uat (push) Successful in 14s
fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438) [uat→main]

All Phase 3 gates passed:
- UAT regression: PASS (CAR-1442, Deal Dottie)
- Security review: PASS (CAR-1443, Stockboy Steve)
- CEO code review: APPROVED (Carl, review #4830)
2026-06-23 01:37:29 +00:00
Barcode Betty f99dc97528 Merge pull request 'fix(ci): promote revert deploy PR base dev/uat → main to uat (CAR-1431)' (#51) from dev into uat
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
CI / build-and-push (push) Successful in 8s
CI / deploy-dev (push) Has been skipped
CI / deploy-uat (push) Successful in 5s
fix(ci): promote revert deploy PR base to uat (CAR-1431)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-23 01:11:16 +00:00
Barcode Betty 35b3b8406e Merge pull request 'fix(ci): revert deploy PR base dev/uat → main (CAR-1431)' (#50) from barcode-betty/car-1428-revert-deploy-base into dev
CI / build-and-push (push) Successful in 9s
CI / deploy-dev (push) Successful in 4s
CI / deploy-uat (push) Has been skipped
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
fix(ci): revert deploy PR base dev/uat → main (CAR-1431)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-23 01:10:47 +00:00
Barcode Betty 88da9ee771 fix(ci): revert deploy PR base dev/uat → main (CAR-1431)
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
Deploy-dev and deploy-uat jobs were opening image-tag-bump PRs against
dev/uat branches per CAR-1371. Flux reconciles all overlays from infra
main, so those PRs were never picked up. Revert --arg base back to main.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-23 01:07:17 +00:00
Barcode Betty ba7bcef05e Merge pull request 'fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438) [dev→uat]' (#48) from dev into uat
CI / build-and-push (push) Successful in 9s
CI / deploy-uat (push) Successful in 8s
CI / deploy-dev (push) Has been skipped
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438) [dev→uat]

QA PASS Charlie review #4825. Promotes CAR-1436+CAR-1438 fixes to UAT.
2026-06-23 00:52:23 +00:00
Barcode Betty 1af633a619 Merge pull request 'fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438)' (#46) from car-1438-graceful-exit-fix into dev
CI / build-and-push (push) Successful in 10s
CI / build-and-push (pull_request) Has been skipped
CI / deploy-uat (push) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
CI / deploy-dev (push) Successful in 10s
fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438)

Any non-merged outcome after successful PR creation is now treated
as the GitOps approval gate (exit 0). Only empty PR_NUM hard-fails.
2026-06-23 00:47:23 +00:00
Barcode Betty 9600de923c Merge pull request 'fix(ci): apply jq title fix to uat (CAR-1436 resolved)' (#47) from car-1436-uat-merge-resolved into uat
CI / build-and-push (push) Successful in 11s
CI / deploy-dev (push) Has been skipped
CI / deploy-uat (push) Failing after 5s
fix(ci): apply CAR-1436 jq title fix to uat (via 3-way resolution)
2026-06-23 00:42:32 +00:00
Barcode Betty 011264a87b fix(ci): resolve dev→uat merge conflict, apply jq title fix (CAR-1436)
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
2026-06-23 00:42:02 +00:00
Barcode Betty 7ff805c3a5 fix(ci): broaden graceful-exit on infra PR auto-merge (CAR-1438)
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
2026-06-23 00:38:36 +00:00
Barcode Betty 28d38a298c Merge pull request 'fix(ci): use shell var for jq --arg title in deploy steps (CAR-1436)' (#44) from car-1436-fix-deploy-jq-title into dev
CI / build-and-push (push) Successful in 13s
CI / deploy-uat (push) Has been skipped
CI / deploy-dev (push) Failing after 6s
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
fix(ci): use shell var for jq --arg title in deploy steps (CAR-1436)
2026-06-22 23:56:59 +00:00
Barcode Betty 80a2ea54be fix: use shell var for jq --arg title in deploy-dev/deploy-uat (CAR-1436)
CI / build-and-push (pull_request) Has been skipped
CI / deploy-dev (pull_request) Has been skipped
CI / deploy-uat (pull_request) Has been skipped
2026-06-22 23:56:09 +00:00
+25 -24
View File
@@ -93,7 +93,7 @@ jobs:
with:
repository: cartsnitch/infra
token: ${{ secrets.CI_GITEA_TOKEN }}
ref: main
ref: ${{ github.ref == 'refs/heads/main' && 'main' || (github.ref == 'refs/heads/uat' && 'uat' || 'dev') }}
path: infra
- name: Install kustomize
@@ -142,8 +142,9 @@ jobs:
echo "::notice::Refusing to push directly to protected branch — falling back to contents API"
exit 0
fi
PR_BODY=$(jq -n --arg head "$BRANCH" --arg body "Bumps apps/overlays/dev/kustomization.yaml auth newTag to \`${{ steps.tag.outputs.tag }}\` from cartsnitch/auth CI build $GITHUB_SHA." \
'{head: $head, base: "main", title: ("ci(dev): update auth image (" + env.GITHUB_SHA[:12] + ")"), body: $body}')
TITLE="ci(dev): update auth image (${GITHUB_SHA::12})"
PR_BODY=$(jq -n --arg head "cartsnitch:${BRANCH}" --arg base main --arg title "$TITLE" --arg body "Bumps apps/overlays/dev/kustomization.yaml auth newTag to \`${{ steps.tag.outputs.tag }}\` from cartsnitch/auth CI build $GITHUB_SHA." \
'{head: $head, base: $base, title: $title, body: $body}')
PR_JSON=$(curl -sS -X POST \
-H "Authorization: token ${CI_GITEA_TOKEN}" \
-H "Content-Type: application/json" \
@@ -163,6 +164,11 @@ jobs:
if [ "${REVIEW_HTTP}" -lt 200 ] || [ "${REVIEW_HTTP}" -ge 300 ]; then
echo "::notice::Failed to request reviewers for cartsnitch/infra PR #${PR_NUM} (HTTP ${REVIEW_HTTP}); continuing"
fi
# CAR-1216: the in-job merge attempt is a best-effort fast-path only.
# `cartsnitch/infra` main requires a human approving review; the CI bot
# cannot self-approve. Treat any non-merged outcome (approvals pending,
# checks pending, any other Gitea message) as the GitOps approval gate
# — the PR is already opened and cs_savannah is requested as reviewer.
MERGE_RESP=$(curl -sS -X POST \
-H "Authorization: token ${CI_GITEA_TOKEN}" \
-H "Content-Type: application/json" \
@@ -170,16 +176,12 @@ jobs:
"https://git.farh.net/api/v1/repos/cartsnitch/infra/pulls/${PR_NUM}/merge")
MERGED=$(echo "$MERGE_RESP" | jq -r '.merged // false')
if [ "$MERGED" = "true" ]; then
echo "PR #${PR_NUM} merged into cartsnitch/infra main"
elif echo "$MERGE_RESP" | grep -qi 'does not have enough approvals'; then
# GitOps approval gate: PR is correctly opened and surfaces in
# CTO queue via the reviewers request above. Treat as success
# so the job does not hard-fail on approvals.
echo "::notice::infra PR #${PR_NUM} opened and awaiting CTO (cs_savannah) approve+merge — GitOps approval gate, not a failure"
exit 0
echo "PR #${PR_NUM} merged into cartsnitch/infra dev"
else
echo "::error::Auto-merge of cartsnitch/infra PR #${PR_NUM} failed: $MERGE_RESP"
exit 1
# CAR-1438: PR opened successfully; any non-merged outcome (empty body,
# approval-gate, pending checks) is the GitOps gate — not a failure.
echo "::notice::infra PR #${PR_NUM} opened — auto-merge not available (${MERGE_RESP:-empty response}); awaiting CTO (cs_savannah) approve+merge"
exit 0
fi
deploy-uat:
@@ -192,7 +194,7 @@ jobs:
with:
repository: cartsnitch/infra
token: ${{ secrets.CI_GITEA_TOKEN }}
ref: main
ref: ${{ github.ref == 'refs/heads/main' && 'main' || (github.ref == 'refs/heads/uat' && 'uat' || 'dev') }}
path: infra
- name: Install kustomize
@@ -241,8 +243,9 @@ jobs:
echo "::notice::Refusing to push directly to protected branch — falling back to contents API"
exit 0
fi
PR_BODY=$(jq -n --arg head "$BRANCH" --arg body "Bumps apps/overlays/uat/kustomization.yaml auth newTag to \`${{ steps.tag.outputs.tag }}\` from cartsnitch/auth CI build $GITHUB_SHA." \
'{head: $head, base: "main", title: ("ci(uat): update auth image (" + env.GITHUB_SHA[:12] + ")"), body: $body}')
TITLE="ci(uat): update auth image (${GITHUB_SHA::12})"
PR_BODY=$(jq -n --arg head "cartsnitch:${BRANCH}" --arg base main --arg title "$TITLE" --arg body "Bumps apps/overlays/uat/kustomization.yaml auth newTag to \`${{ steps.tag.outputs.tag }}\` from cartsnitch/auth CI build $GITHUB_SHA." \
'{head: $head, base: $base, title: $title, body: $body}')
PR_JSON=$(curl -sS -X POST \
-H "Authorization: token ${CI_GITEA_TOKEN}" \
-H "Content-Type: application/json" \
@@ -262,6 +265,7 @@ jobs:
if [ "${REVIEW_HTTP}" -lt 200 ] || [ "${REVIEW_HTTP}" -ge 300 ]; then
echo "::notice::Failed to request reviewers for cartsnitch/infra PR #${PR_NUM} (HTTP ${REVIEW_HTTP}); continuing"
fi
# CAR-1216: see deploy-dev — same never-fail on merge outcome.
MERGE_RESP=$(curl -sS -X POST \
-H "Authorization: token ${CI_GITEA_TOKEN}" \
-H "Content-Type: application/json" \
@@ -269,14 +273,11 @@ jobs:
"https://git.farh.net/api/v1/repos/cartsnitch/infra/pulls/${PR_NUM}/merge")
MERGED=$(echo "$MERGE_RESP" | jq -r '.merged // false')
if [ "$MERGED" = "true" ]; then
echo "PR #${PR_NUM} merged into cartsnitch/infra main"
elif echo "$MERGE_RESP" | grep -qi 'does not have enough approvals'; then
# GitOps approval gate: PR is correctly opened and surfaces in
# CTO queue via the reviewers request above. Treat as success
# so the job does not hard-fail on approvals.
echo "::notice::infra PR #${PR_NUM} opened and awaiting CTO (cs_savannah) approve+merge — GitOps approval gate, not a failure"
exit 0
echo "PR #${PR_NUM} merged into cartsnitch/infra uat"
else
echo "::error::Auto-merge of cartsnitch/infra PR #${PR_NUM} failed: $MERGE_RESP"
exit 1
# CAR-1438: PR opened successfully; any non-merged outcome (empty body,
# approval-gate, pending checks) is the GitOps gate — not a failure.
echo "::notice::infra PR #${PR_NUM} opened — auto-merge not available (${MERGE_RESP:-empty response}); awaiting CTO (cs_savannah) approve+merge"
exit 0
fi