mcpbeat

Bump Test Image

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.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
17571
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/redis/node-redis --skill bump-test-image

The instruction itself

9 sections, as written by the author

Bump default docker 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.

Inputs

  • tag (required): the new docker tag, e.g. 8.8.0, 8.8-rc1, custom-28772936538-debian, unstable-24425681442-debian. If given as redislabs/client-libs-test:<tag>, strip the image name.
  • version (sometimes required): the Redis version the tag represents, e.g. 8.10.
  • Derivable when the tag is version-shaped: 8.8.08.8, 8.8-rc18.8, 8.8-m038.8.
  • NOT derivable for 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.

Step 1 — Sync master from upstream

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:

  • If currently on master: git reset --hard upstream/master (only if working tree is clean — if dirty, stop and tell the user).
  • Otherwise: git fetch upstream master:master (fails safely if master has local-only commits; if it fails, stop and report).

Step 2 — Reset the work branch

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).

Step 3 — Edit the shared default config

The default image config lives in exactly ONE place:

packages/test-utils/lib/index.tsDEFAULT_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.

Step 4 — Update the CI matrix

File: .github/workflows/tests.yml, matrixredis 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:

  • New Redis version (e.g. default moves 8.8 → 8.10): add a new - tag/version entry at the end of the matrix list, keeping the previous entry so CI retains coverage of the prior version.
  • Same Redis version (rc → GA, or a newer custom build of the same version): replace the tag of the existing entry for that version; the version line stays.

Step 5 — Verify

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.

Step 6 — Commit

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.

Step 7 — Force-push 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.)

  • If a PR exists, the force-push already updated it — just report the URL. Update its title/body via gh pr edit to match the new tag.
  • Otherwise create one:
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.

How to use it

Copy the folder

Take redis/bump-test-image from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.