Skip to content

Build & publish the simulator image via GitHub Actions#29

Merged
YWHyuk merged 1 commit into
mainfrom
claude/add-sim-image-ci
May 18, 2026
Merged

Build & publish the simulator image via GitHub Actions#29
YWHyuk merged 1 commit into
mainfrom
claude/add-sim-image-ci

Conversation

@YWHyuk
Copy link
Copy Markdown

@YWHyuk YWHyuk commented May 18, 2026

Summary

Adds a GitHub Actions workflow that builds an Ubuntu-based image with the simulator side fully installed (ASTRA-Sim analytical backend, chakra, python deps — exactly what scripts/install-sim.sh produces on a bare host) and publishes it to GitHub Container Registry.

Files

  • scripts/sim.Dockerfile — Ubuntu 24.04 base + scripts/install-sim.sh. apt deps are pre-installed in a dedicated layer so they cache independently of the source-change rebuilds further down.
  • .github/workflows/build-sim-image.yml — Builds on every push to main (and PRs / manual dispatch) touching the install paths. Publishes to ghcr.io/<owner>/<repo>/sim with tags latest (main only), sha-<short> (every build), and the branch name for non-main branches. PRs run the build to validate the install path but do not push.
  • scripts/README.md — One row added for sim.Dockerfile.

Why

The simulator side has a non-trivial build (~5-10 min for ASTRA-Sim's analytical backend, plus pip / submodule init). A published image lets contributors and CI runs skip that bootstrap and start from a ready-to-use container.

Usage after merge

docker pull ghcr.io/psal-postech/llmservingsimspec/sim:latest
docker run -it --rm -v "$(pwd)":/workspace \
  ghcr.io/psal-postech/llmservingsimspec/sim:latest bash

Test plan

  • PR build kicks in (workflow file path is in the trigger filter, so this PR itself triggers it).
  • The build completes successfully on ubuntu-latest GHA runner.
  • After merge to main, the workflow publishes ghcr.io/psal-postech/llmservingsimspec/sim:latest and a sha- tag. Org / package visibility may need a one-time flip to public on the GHCR package page.
  • docker run against the pulled image lands in /workspace with the simulator deps in place; python -m serving --help works without further install.

Notes

  • Image size will be ~3-5 GB (ubuntu + apt + python deps + ASTRA-Sim build artifacts). Public GHCR storage is unlimited; private orgs hit a quota.
  • Initial build is ~10-15 min on ubuntu-latest; subsequent cached rebuilds ~2-3 min via cache-from: type=gha.
  • Independent of Add CPU profiling support to profiler and vLLM CPU install script #27 (CPU profiler). This PR is purely the CI / image artifact.

Generated by Claude Code

scripts/sim.Dockerfile: Ubuntu 24.04 base + scripts/install-sim.sh,
so the image carries the simulator side fully installed (ASTRA-Sim
analytical backend, chakra, python deps). apt deps are pre-installed
in a dedicated layer so they cache independently of the source-change
rebuilds further down.

.github/workflows/build-sim-image.yml: builds the Dockerfile on
GitHub-hosted ubuntu-latest runners and publishes to GHCR
(ghcr.io/<owner>/<repo>/sim) with tags 'latest' (main only),
'sha-<short>' (every build), and the branch name for non-main
branches. PRs run the build to validate the install path but do not
push. GHA buildx cache keeps incremental rebuilds cheap.
@YWHyuk YWHyuk merged commit de2b3db into main May 18, 2026
1 check 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