refactor(deploy): make deploy CLI model-first (typed DeploymentConfig) #18951
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
DeploymentConfig
models instead of dictsRunnerDeployment
schedule: {}
promotionDetails
_load_deploy_configs_and_actions
: returnslist[DeploymentConfig]
+ actions dict_parse_name_from_pattern
,_filter_matching_deploy_config
,_handle_pick_deploy_*
) accept models and convert to dicts for prompt/display and downstream execution_apply_cli_options_to_deploy_config
: takes/returnsDeploymentConfig
; merges params, variables and work-pool fields; accepts dictconcurrency_limit
and validates intoConcurrencyLimitSpec
_handle_deprecated_schedule_fields
: typed toDeploymentConfig
; only promotesschedule
toschedules
if non-empty when dict (avoidsschedule: {}
errors)_run_single_deploy
: dict -> model -> resolve blocks/vars/env -> apply options -> template -> dump JSON forRunnerDeployment
constructionWhy
Testing
TestProjectDeploy::test_project_deploy
locallyFollow-ups