Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <types…>` 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).

Expand Down
Loading