bump-test-image

tarafından redis

Paylaşılan DEFAULT_DOCKER_CONFIG ve CI matrisindeki varsayılan Redis docker test görüntüsünü (redislabs/client-libs-test) yükseltin, ardından zorla gönderin…

npx skills add https://github.com/redis/node-redis --skill bump-test-image

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:

  1. 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.
  2. 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.

redis tarafından daha fazla skill

docs-sync
redis
Ana dal uygulamasını ve yapılandırmasını analiz ederek docs/, README.md ve paket bazlı README'lerde eksik, hatalı veya güncelliğini yitirmiş dokümantasyonu bul. Kullan…
official
implement-command
redis
Add a new Redis command (or command variant) to node-redis end-to-end — the `<NAME>.ts` Command file, its registration with JSDoc in the package…
official
maintainer-review
redis
Bir GitHub sorununu veya çekme isteği URL'sini node-redis bakımcısı olarak inceleyin; iddianın gerçek, pratik olarak önemli, zaten… olup olmadığına dair aşamalı bir değerlendirme yapın.
official
pr-draft-summary
redis
Gerekli PR hazır özet bloğunu, dal önerisini, başlığı ve node-redis için taslak açıklamayı oluşturur. Her ne zaman… son yanıttan önce kullanılmalıdır.
official
runtime-behavior-probe
redis
Geçici TypeScript prob betikleri, doğrulama matrisleri, durum kontrolleri ve bulguları öncelikli raporlarla runtime davranış araştırmalarını planlayın ve yürütün. Kullan…
official
backend
redis
NestJS backend geliştirme desenleri, RedisInsight API için: modül yapısı, servisler, kontrolcüler, DTO'lar, bağımlılık enjeksiyonu ve hata yönetimi. Şu durumlarda kullan…
official
branches
redis
Küçük harf kebab-case kullanın ve tür öneki ile sorun/bilet tanımlayıcısı ekleyin. Dal adları GitHub Actions iş akışı kurallarına uymalıdır (bkz. .github/workflows/enforce-branch-name-rules.yml).
official
code-quality
redis
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPER_SNAKE_CASE), linting rules, no `any` without…
official