|
35 | 35 | ├── config/ |
36 | 36 | │ ├── image/ # Image configs (one file = one released image) |
37 | 37 | │ │ ├── base/ |
| 38 | +│ │ ├── huggingface-vllm/ |
38 | 39 | │ │ ├── pytorch/ |
39 | 40 | │ │ ├── sglang/ |
40 | 41 | │ │ ├── vllm/ |
|
45 | 46 | │ ├── sglang-model-tests.yml |
46 | 47 | │ ├── vllm-model-tests.yml |
47 | 48 | │ └── vllm-omni-model-tests.yml |
48 | | -├── release_schedule.md # Autorelease cron schedule reference |
| 49 | +├── release-schedule.yml # Autorelease cron schedule (housekeeping, validated by prcheck) |
49 | 50 | ├── scripts/ |
50 | 51 | │ └── buildspec-cb-fleet.yml # CodeBuild fleet runner setup (installs uv, yq, jq) |
51 | 52 | └── workflows/ # GitHub Actions workflows |
@@ -87,6 +88,7 @@ scripts/ |
87 | 88 | └── docker/ # Docker build artifacts (COPY'd into images, run inside containers) |
88 | 89 | ├── common/ # Shared install scripts (EFA, OSS compliance, Python) |
89 | 90 | ├── telemetry/ # DLC telemetry (deep_learning_container.py, bash_telemetry template) |
| 91 | + ├── huggingface/vllm/ # HF vLLM entrypoints, optimizations |
90 | 92 | ├── vllm/ # vLLM entrypoints, sagemaker_serve, patches |
91 | 93 | ├── sglang/ # SGLang entrypoints |
92 | 94 | ├── pytorch/ # PyTorch entrypoints, SSH config, NCCL |
@@ -242,7 +244,7 @@ sglang.pr-amzn2023.yml (trigger + gatekeeper + check-changes + discover-configs) |
242 | 244 | - **Callers use discover-configs matrix:** all PR and autorelease callers discover configs via glob pattern, then matrix-call the pipeline per config. This means adding a new image variant only requires adding a config file. |
243 | 245 | - **Pipeline is per-framework:** one `sglang.pipeline.yml` handles all SGLang variants. A `ci-config` job parses the config to gate variant-specific tests (e.g., sagemaker test only runs for sagemaker configs, GPU tests only for GPU images). |
244 | 246 | - **PR vs release:** identical pipeline call, different `release:` flag. Callers pass `release: false` (PR) or `release: true` (autorelease). |
245 | | -- **Release gating:** pipelines use a `release-gate` job that checks `release.release` from config and generates the release spec. The actual release job calls `_reusable.release-image.yml`. |
| 247 | +- **Release gating:** pipelines use a `release-gate` job gated on three conditions: `github.ref == 'refs/heads/main'`, caller filename contains `.autorelease` or `.dispatch-release` (via `github.workflow_ref`), and `inputs.release == true`. This prevents accidental releases from PR workflows or non-main branches. The gate then checks `release.release` from config and generates the release spec. The actual release job calls `_reusable.release-image.yml`. |
246 | 248 | - **Test-only runs:** when build is skipped (only test files changed), test jobs receive empty `image-uri` → `resolve-image-uri` action falls back to prod image from `metadata.prod_image`. |
247 | 249 | - **Graceful skip:** `check-image-exists` action probes ECR; if image not found (first release scenario), tests skip cleanly. |
248 | 250 | - **PR change detection:** `dorny/paths-filter` outputs per-test-suite flags. The pipeline receives `run-*-test` booleans. If `build-change` is true, all tests run. |
|
0 commit comments