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).
3.5 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools | |||
|---|---|---|---|---|---|
| Bump the recipe version and publish the release via `abra recipe release` | <recipe-name> [--patch|--minor|--major] |
|
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 releasepushes 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
- Check for uncommitted changes in the recipe directory:
git -C ~/.abra/recipes/<recipe-name> status --short
If there are uncommitted changes, review the diff to understand what changed:
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"):
cd ~/.abra/recipes/<recipe-name>
git add -A
git commit -m "<concise summary of changes>"
If there are no uncommitted changes, skip this step.
- Run
abra recipe releasewith 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):
#!/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.
- Report the result — show the old and new version, and confirm the release was published.