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).