From 757fdec90f9c936ad2c3f1197fc728b81bce17ed Mon Sep 17 00:00:00 2001 From: bulbashenko Date: Mon, 12 Oct 2026 19:32:36 +0200 Subject: [PATCH 1/2] Ask infra for the deploy PR after a green push to main A promote job after manifests calls infra's request-promote.yml. It opens or refreshes the PR deploy/mail in bulbashenko-com/infra (the owner merges it). Pushes that change nothing Flux reads (README etc.) get no PR. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 10 ++++++++++ README.md | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff3c947..d5e7b80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,3 +18,13 @@ jobs: - run: python3 -c 'import json; json.load(open("deploy/k8s/config.json"))' - run: | pipx run yamllint==1.37.1 -d '{rules: {key-duplicates: enable}}' . + + # After a green push to main: opens or refreshes the production deploy PR in bulbashenko-com/infra (the owner merges it). + promote: + needs: manifests + if: github.event_name == 'push' + uses: bulbashenko-com/infra/.github/workflows/request-promote.yml@main + with: + app: mail + sha: ${{ github.sha }} + secrets: inherit diff --git a/README.md b/README.md index 0c9d001..b489539 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ **Settings.** `config.json` only says where the database is; everything else is in the database and is changed through the web UI (`mail.int`) or `stalwart-cli` against `https://mail.int.bulbashenko.com` with an API key. `stalwart-cli snapshot ` exports settings as an idempotent plan for `stalwart-cli apply` (secrets come back as `****` and must be supplied separately). -**Upgrade.** Change the image tag (PR), then promote the commit in infra. Read the release notes first: Stalwart migrates its schema on start. +**Upgrade.** Change the image tag (PR). After it merges, CI opens the deploy PR `deploy/mail` in infra; merging that rolls it out. Read the release notes first: Stalwart migrates its schema on start. **Restore.** Restore the Postgres database (CNPG recovery from the barman object store), then start this Deployment. Moving to another node = move the role=mail label *and* the IP (or update MX/SPF/PTR). From 477c97919564fb356b7a750d39f95e5f64d0fbdf Mon Sep 17 00:00:00 2001 From: bulbashenko Date: Mon, 12 Oct 2026 19:46:46 +0200 Subject: [PATCH 2/2] Re-run CI now that infra has request-promote.yml Co-Authored-By: Claude Opus 5.5