Skip to content

Track image-content directories in build-sim-image trigger#34

Merged
YWHyuk merged 1 commit into
mainfrom
claude/track-image-content-paths
May 18, 2026
Merged

Track image-content directories in build-sim-image trigger#34
YWHyuk merged 1 commit into
mainfrom
claude/track-image-content-paths

Conversation

@YWHyuk
Copy link
Copy Markdown

@YWHyuk YWHyuk commented May 18, 2026

Summary

Makes the sim image trigger fire on every change to repo content that ends up baked into /workspace, not just on build-pipeline changes.

Why

scripts/sim.Dockerfile does COPY . /workspace, so the image's /workspace tree IS a snapshot of the repo at build time. The previous trigger only fired on the build pipeline:

- scripts/install-sim.sh
- scripts/compile.sh
- scripts/sim.Dockerfile
- .dockerignore
- astra-sim
- .gitmodules
- .github/workflows/build-sim-image.yml

So a fix to serving/__main__.py or a new cluster config in configs/cluster/ would not rebuild the image — pulled containers ran old code while :latest only advanced on the merge commit's path-filter match. PR #33 (single-mode dispatch in serving/spec_compression_stress.sh) is a concrete example: the new behaviour would never reach users via docker pull until something unrelated pushed an image rebuild.

Change

Add the four top-level directories that are part of the image's /workspace snapshot:

- serving/**
- configs/**
- workloads/**
- profiler/**

These mirror the mount surface that scripts/docker-vllm.sh exposes today, so anything a contributor would expect to see inside the container now triggers a rebuild.

Cost

A few extra CI runs per week when serving/ or configs/ change. Per-platform native runners + GHA buildx cache keep each one to ~2-3 min on cache hit, so the budget impact is small. Worth it to keep :latest honest.

Test plan

  • After merge, a PR that touches only serving/__main__.py triggers a build run.
  • After merge, a PR that touches only docs/ (already in .dockerignore) does not trigger a build run.
  • After merge to main, the resulting :latest includes the updated serving/spec_compression_stress.sh from PR Add single-mode dispatch to spec_compression_stress.sh #33 (verifiable with docker run --rm ghcr.io/psal-postech/llmservingsimspec/sim:latest bash /workspace/serving/spec_compression_stress.sh nonsense — the new error message proves the new script is in there).

Generated by Claude Code

scripts/sim.Dockerfile does ``COPY . /workspace``, so the image's
/workspace tree IS a snapshot of the repo at build time. The previous
trigger only fired on build-pipeline files (install-sim.sh, the
Dockerfile, .dockerignore, the astra-sim submodule pin, the workflow
itself), which left ``:latest`` stale whenever real simulator changes
landed: a fix to serving/__main__.py or a new cluster config in
configs/cluster/ would not rebuild the image, so pulled containers
ran old code while only the registry tag advanced via main branch
moves.

Add the four top-level directories baked into /workspace (serving/,
configs/, workloads/, profiler/) to the path filter. They mirror the
docker-vllm.sh mount surface, so any change a contributor would
expect to see inside the sim container now triggers a rebuild.

Cost: a few extra CI runs per week on serving/ + configs/ edits.
Worth it to keep the image honest.
@YWHyuk YWHyuk merged commit 36fb4d0 into main May 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants