redis/bump-test-image
Bump the default Redis docker test image (redislabs/client-libs-test) in the shared DEFAULT_DOCKER_CONFIG and the CI matrix, then force-push the bump-test-image branch and open a PR against upstream. User-invoked only.
npx skills add https://github.com/redis/node-redis --skill bump-test-image
Updates the default redislabs/client-libs-test docker tag used by tests (a single shared config in @redis/test-utils), adjusts the CI matrix, commits on a freshly-reset bump-test-image branch, force-pushes it, and opens (or updates) a PR against redis/node-redis master.
8.8.0, 8.8-rc1, custom-28772936538-debian, unstable-24425681442-debian. If given as redislabs/client-libs-test:<tag>, strip the image name.8.10.8.8.0 → 8.8, 8.8-rc1 → 8.8, 8.8-m03 → 8.8.custom-* / unstable-* tags — if missing, ask the user which Redis version the tag maps to before doing anything else.If no tag was given at all, ask for it and stop.
Remotes: upstream = redis/node-redis (canonical), origin = the user's fork.
git fetch upstream
git rev-parse --abbrev-ref HEAD # remember current branch
Update local master to upstream:
git reset --hard upstream/master (only if working tree is clean — if dirty, stop and tell the user).git fetch upstream master:master (fails safely if master has local-only commits; if it fails, stop and report).git checkout -B bump-test-image master
-B creates or hard-resets the branch to latest master. Any previous bump commits on it are intentionally discarded (the branch is recycled for each bump; force-push later matches this).
The default image config lives in exactly ONE place:
packages/test-utils/lib/index.ts → DEFAULT_DOCKER_CONFIG:
export const DEFAULT_DOCKER_CONFIG: TestUtilsConfig = {
dockerImageName: 'redislabs/client-libs-test',
dockerImageTagArgument: 'redis-tag',
dockerImageVersionArgument: 'redis-version',
defaultDockerVersion: { tag: '<old-tag>', version: '<old-version>' }
};
Note the old tag/version, then replace them with the new values on the defaultDockerVersion line. Nothing else in the file changes.
If DEFAULT_DOCKER_CONFIG does not exist in that file (e.g. master predates the dedupe refactor), STOP and tell the user — do not fall back to editing per-package test-utils files without confirmation.
File: .github/workflows/tests.yml, matrix → redis entries of the form:
- tag: "8.8.0"
version: "8.8"
Two cases, decided by comparing the new version with the old default version from Step 3:
- tag/version entry at the end of the matrix list, keeping the previous entry so CI retains coverage of the prior version.tag of the existing entry for that version; the version line stays.grep -rn "defaultDockerVersion:" packages --include="*.ts" | grep -v dist | grep -v node_modules
Exactly one config line (in packages/test-utils/lib/index.ts) must show the new tag/version; any other hits are the type definition / JSDoc examples, not real defaults. Also confirm git diff --stat touches exactly 2 files: packages/test-utils/lib/index.ts + .github/workflows/tests.yml.
Fill in this template exactly (Conventional Commits):
chore(tests): bump default docker test image to <X>
Bump the default Redis test image from <old-tag> to <new-tag> (Redis
<version>) in DEFAULT_DOCKER_CONFIG, and <matrix-action> the CI matrix.
<X>: the human-meaningful version when the tag is version-shaped (8.10, 8.8.0, 8.8-rc1, 8.8-m03); the full tag for unstable-* builds; the version for custom-* tags (the actual tag already appears in the body as <new-tag>).<matrix-action>: either add an <version> entry to (keeping prior-version coverage) or update the <version> entry in, matching what Step 4 did.Example:
chore(tests): bump default docker test image to 8.10
Bump the default Redis test image from 8.8.0 to custom-28772936538-debian
(Redis 8.10) in DEFAULT_DOCKER_CONFIG, and add an 8.10 entry to the CI
matrix.
Keep any company-internal references (Jira/Confluence IDs, internal links) out of the commit and PR.
git push -f origin bump-test-image
Then check for an existing open PR before creating one:
gh pr list --repo redis/node-redis --head <fork-owner>:bump-test-image --state open
(<fork-owner> = GitHub owner from the origin remote URL.)
gh pr edit to match the new tag.gh pr create --repo redis/node-redis --base master --head <fork-owner>:bump-test-image \
--title "<commit subject>" \
--body "<commit body>"
Finish by reporting: old → new tag/version, matrix action taken (added vs replaced entry), and the PR URL.
Take redis/bump-test-image from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.