recipe-maintainer: public snapshot (secrets + deployment plans removed, single commit)

Sanitized single-commit public mirror of recipe-maintainer.
- Removed test-ssh/.testenv (live creds); added test-ssh/.testenv.example placeholders.
- Removed plans/ and planned-updates/ (deployment-planning docs) so no client/
  deployment domains appear in the public repo.
- All other secret stores were already gitignored.
- docs.coopcloud.tech retained as a submodule (public upstream).
This commit is contained in:
2026-06-16 20:18:24 +00:00
commit f283a371bb
253 changed files with 15975 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
---
description: Bump the recipe version and publish the release via `abra recipe release`
argument-hint: <recipe-name> [--patch|--minor|--major]
allowed-tools: [Bash, Read, Grep]
---
# Recipe New Tag
Bump the recipe version label and publish the release using **`abra recipe release`** — the one command
that bumps the `coop-cloud.${STACK_NAME}.version` label, commits, creates the annotated tag, **and pushes
the tag upstream** (which publishes the release to the Co-op Cloud catalogue). Do **not** hand-compute the
semver or hand-edit the label — let abra do it.
> ⚠️ **This publishes.** A real (non-`--dry-run`) `abra recipe release` pushes the tag to the recipe's git
> origin, generating a catalogue release. Only run it from a machine that has push access to the recipe's
> upstream (ssh-agent loaded with the coopcloud key), and only when you mean to publish. In the
> upgrade-PR flow this is the **final** step, run after the upstream PR merges (see `/recipe-upstream`).
The arguments are: $ARGUMENTS
Parse the arguments to extract the recipe name (first positional arg) and the bump type flag (`--patch`, `--minor`, or `--major`). Default to `--patch` if no flag is given.
## Steps
1. **Check for uncommitted changes** in the recipe directory:
```bash
git -C ~/.abra/recipes/<recipe-name> status --short
```
If there are uncommitted changes, review the diff to understand what changed:
```bash
git -C ~/.abra/recipes/<recipe-name> diff
git -C ~/.abra/recipes/<recipe-name> diff --cached
git -C ~/.abra/recipes/<recipe-name> ls-files --others --exclude-standard
```
Then stage everything and create a commit with a concise message summarising the changes (not just "update files" — describe what actually changed, e.g. "move WOPI startup trigger to celery worker" or "add celery-beat service for WOPI scheduling"):
```bash
cd ~/.abra/recipes/<recipe-name>
git add -A
git commit -m "<concise summary of changes>"
```
If there are no uncommitted changes, skip this step.
2. **Run `abra recipe release`** with the parsed recipe name and the flag for the bump type. Map the bump
type to the abra flag (`major→-x`, `minor→-y`, `patch→-z`), then run the real (non-`--dry-run`) command
— it bumps the label, commits, tags, and pushes the tag (publishes):
```bash
#!/usr/bin/env bash
set -euo pipefail
RECIPE="<recipe-name>"
BUMP="<patch|minor|major>"
RECIPE_DIR="${HOME}/.abra/recipes/${RECIPE}"
COMPOSE="${RECIPE_DIR}/compose.yml"
if [ ! -f "${COMPOSE}" ]; then
echo "ERROR: ${COMPOSE} not found. Run 'abra recipe fetch ${RECIPE}' first."
exit 1
fi
# Current version (for the report only — abra computes the new one)
CURRENT=$(grep -oP 'coop-cloud\.\$\{STACK_NAME\}\.version=\K[^\s"]+' "${COMPOSE}" | head -1 || true)
# Map the bump type to the abra recipe release flag
case "${BUMP}" in
major) FLAG="-x" ;;
minor) FLAG="-y" ;;
patch) FLAG="-z" ;;
*) echo "ERROR: unknown bump type '${BUMP}'"; exit 1 ;;
esac
# Bump the label + commit + tag + PUBLISH, all in one real release (NO --dry-run).
# abra computes the correct a.b.c+x.y.z itself; do not hand-edit the label or hand-create the tag.
abra recipe release "${RECIPE}" "${FLAG}"
# Show the resulting version label
NEW_VER=$(grep -oP 'coop-cloud\.\$\{STACK_NAME\}\.version=\K[^\s"]+' "${COMPOSE}" | head -1 || true)
echo ""
echo "Version: ${CURRENT:-?} -> ${NEW_VER:-?} (released + published)"
```
Substitute `<recipe-name>` and `<patch|minor|major>` with the parsed values, then run the script with `bash`.
3. **Report the result** — show the old and new version, and confirm the release was published.