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).
2.6 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools | ||||||
|---|---|---|---|---|---|---|---|---|
| Test upgrading a recipe's test instance using abra app deploy | <recipe-name> |
|
Recipe Test Update
Deploy updated recipe images to an already-running test instance and verify the upgrade works. Combines /recipe-deploy and /recipe-test with pre-flight checks to confirm the version is actually changing.
The recipe name is: $ARGUMENTS
Read and follow the instructions in .claude/commands/includes/logging.md.
Read and follow the instructions in .claude/commands/includes/guidelines.md.
Steps
-
Get the domain and server for this recipe:
python3 scripts/get_test_instance.py --recipe $ARGUMENTSThis outputs DOMAIN and SERVER for the active instance.
- If the recipe has no
recipe-info/$ARGUMENTS/recipe.toml, tell the user to run/recipe-init $ARGUMENTSfirst and stop.
- If the recipe has no
-
Check preconditions:
- Verify the app is currently deployed:
abra app ps <DOMAIN> --chaos --no-input -m. - If the app is not deployed, tell the user to run
/recipe-deploy $ARGUMENTSfirst and stop — we need a running instance to upgrade. - Note the currently deployed version from the
psoutput.
- Verify the app is currently deployed:
-
Read the new version from
~/.abra/recipes/$ARGUMENTS/compose.yml:- Find the
coop-cloud.${STACK_NAME}.version=...label to get the new recipe version string. - If the new version matches the currently deployed version, tell the user there's nothing to upgrade and stop.
- Show the user what's changing: old version → new version.
- Find the
-
Deploy the update by following the
/recipe-deployprocess for$ARGUMENTS. -
Wait for the app to stabilise:
- Wait 30 seconds, then check status:
abra app ps <DOMAIN> --chaos --no-input -m. - Allow up to 90 seconds total for all services to reach "running" state.
- If services are not healthy after 90 seconds, note this but continue to tests.
- Wait 30 seconds, then check status:
-
Run the test suite by following the
/recipe-testprocess for$ARGUMENTS. -
Summarise results:
Phase Result Pre-upgrade status deployed at version X Deploy update PASS / FAIL Post-upgrade health PASS / FAIL Test suite PASS / FAIL (detail per test) If all tests passed:
- Confirm the update works.
- Suggest committing and tagging the recipe if not already done, then pushing when ready.
If the deploy or any tests failed:
- Report what failed with relevant error output and suggest troubleshooting.
- Note that the previous version can be restored by fetching the recipe (
abra recipe fetch $ARGUMENTS --force) and redeploying.