(env: Mapping[str, str])
| 325 | |
| 326 | |
| 327 | def resolve_controller_inputs(env: Mapping[str, str]) -> ControllerInputs: |
| 328 | event_name = env.get("GITHUB_EVENT_NAME", "") |
| 329 | repository = env.get("DS_CI_REPOSITORY", "") |
| 330 | sha = env.get("DS_CI_SHA", "") |
| 331 | if not repository or not sha: |
| 332 | if event_name == "pull_request_target": |
| 333 | raise ValueError("pull_request_target requires explicit PR repository and SHA metadata") |
| 334 | repository = repository or env.get("GITHUB_REPOSITORY", "") |
| 335 | sha = sha or env.get("GITHUB_SHA", "") |
| 336 | repository = validate_repository(repository) |
| 337 | sha = validate_sha(sha) |
| 338 | |
| 339 | selection_mode = env.get("DS_TEST_SELECTION_MODE", "") |
| 340 | selection_file = env.get("DS_TEST_LIST_FILE", "") |
| 341 | if not selection_file: |
| 342 | raise ValueError("DS_TEST_LIST_FILE is required") |
| 343 | targets = load_test_selection(Path(selection_file), selection_mode) |
| 344 | |
| 345 | torch_preset = env.get("MODAL_TORCH_PRESET") or DEFAULT_MODAL_TORCH_PRESET |
| 346 | if torch_preset not in MODAL_TORCH_PRESETS: |
| 347 | supported = ", ".join(sorted(MODAL_TORCH_PRESETS)) |
| 348 | raise ValueError(f"unsupported MODAL_TORCH_PRESET={torch_preset!r}; supported values: {supported}") |
| 349 | transformers_source = env.get("MODAL_TRANSFORMERS_SOURCE") or DEFAULT_MODAL_TRANSFORMERS_SOURCE |
| 350 | if transformers_source not in {"requirements", "git"}: |
| 351 | raise ValueError("MODAL_TRANSFORMERS_SOURCE must be 'requirements' or 'git'") |
| 352 | transformers_ref = env.get("MODAL_TRANSFORMERS_REF", "") |
| 353 | if transformers_source == "git": |
| 354 | transformers_ref = validate_transformers_ref(transformers_ref or "main") |
| 355 | else: |
| 356 | transformers_ref = "" |
| 357 | |
| 358 | return ControllerInputs( |
| 359 | repository=repository, |
| 360 | sha=sha, |
| 361 | selection_mode=selection_mode, |
| 362 | targets=targets, |
| 363 | torch_preset=torch_preset, |
| 364 | transformers_source=transformers_source, |
| 365 | transformers_ref=transformers_ref, |
| 366 | ) |
| 367 | |
| 368 | |
| 369 | def build_sandbox_env() -> dict[str, str]: |
no test coverage detected