bdd-container-update

Rebuilds and pushes the BDD test Docker image and updates its tag in start_test.sh.

1.8k|384|Updated Oct 22, 2024
One-click install
npx skills add https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization --skill bdd-container-update
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bdd-container-update
Source: https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization/tree/main/services/vios/.cursor/skills/bdd-container-update
Command: npx skills add https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization --skill bdd-container-update

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It removes the guesswork of deciding when the BDD test container needs a rebuild and how to version it, preventing stale CI images and unnecessary rebuilds when only bind-mounted test code changes.

Core Features & Use Cases

  • Rebuild Decision Logic: Distinguishes files baked into the image (Dockerfile, docker-entrypoint.sh, pyproject.toml, poetry.lock) from bind-mounted test sources that never require a rebuild.
  • Semantic Version Bumping: Classifies changes as major, minor, or patch with a decision table and tie-breaking rules.
  • End-to-End Update Workflow: Builds the image, pushes it to the GitLab registry, and updates the image tag in cicd_files/docker-compose-test/start_test.sh.
  • Use Case: After adding a new pytest plugin to pyproject.toml, follow the workflow to bump the minor version, rebuild and push bdd_tests:vX.Y.Z_x86, and update the compose script tag.

Quick Start

Update the BDD test container image after my changes to test/bdd_tests/pyproject.toml, choosing the right version bump and updating start_test.sh.

Frequently Asked Questions about bdd-container-update

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
When do I need to rebuild the BDD test Docker image?

Rebuild only when files baked into the image change: test/bdd_tests/Dockerfile, docker-entrypoint.sh, pyproject.toml, or poetry.lock. Changes under tests/, features/, scripts/, data/, conftest.py, or config.json are bind-mounted at runtime and require no rebuild.

How do I choose between a major, minor, or patch version bump for a test container?

Use major for base image or entrypoint changes and dependency major upgrades, minor for new runtime dependencies or non-breaking Dockerfile additions, and patch for dependency patch upgrades or comment-only edits. When in doubt, prefer the smaller bump.

How do I update the BDD test image tag in CI configuration?

Edit cicd_files/docker-compose-test/start_test.sh inside the update_docker_compose() function and replace the old version in the bdd_tests image line with the new MAJOR.MINOR.PATCH value. Only that single line should change.

Why did my test code changes not appear in the BDD container?

Test sources are bind-mounted from the host repo into /app/ at runtime, so the container always runs the host's current test code. If behavior seems stale, check the bind mount in start_test.sh rather than rebuilding the image.

What registry and tag format does the BDD test image use?

The image is pushed to the internal GitLab registry as bdd_tests with tags in the format v<MAJOR>.<MINOR>.<PATCH>_x86. You must run docker login against the registry before pushing.