Resolve gathers workspace build parameters in a layered fashion, applying values from various sources in order of precedence: 1. template defaults (if auto-accepting defaults) 2. cli parameter defaults (if auto-accepting defaults) 3. parameter file 4. CLI/ENV 5. source build 6. last build 7. preset
(inv *serpent.Invocation, action WorkspaceCLIAction, templateVersionParameters []codersdk.TemplateVersionParameter)
| 104 | // 7. preset |
| 105 | // 8. user input (unless auto-accepting defaults) |
| 106 | func (pr *ParameterResolver) Resolve(inv *serpent.Invocation, action WorkspaceCLIAction, templateVersionParameters []codersdk.TemplateVersionParameter) ([]codersdk.WorkspaceBuildParameter, error) { |
| 107 | var staged []codersdk.WorkspaceBuildParameter |
| 108 | var err error |
| 109 | |
| 110 | staged = pr.resolveWithParametersMapFile(staged) |
| 111 | staged = pr.resolveWithCommandLineOrEnv(staged) |
| 112 | staged = pr.resolveWithSourceBuildParametersInParameters(staged, templateVersionParameters) |
| 113 | staged = pr.resolveWithLastBuildParametersInParameters(staged, templateVersionParameters) |
| 114 | staged = pr.resolveWithPreset(staged) // Preset parameters take precedence from all other parameters |
| 115 | if err = pr.verifyConstraints(staged, action, templateVersionParameters); err != nil { |
| 116 | return nil, err |
| 117 | } |
| 118 | if staged, err = pr.resolveWithInput(staged, inv, action, templateVersionParameters); err != nil { |
| 119 | return nil, err |
| 120 | } |
| 121 | return staged, nil |
| 122 | } |
| 123 | |
| 124 | func (pr *ParameterResolver) InitialValues() []codersdk.WorkspaceBuildParameter { |
| 125 | var staged []codersdk.WorkspaceBuildParameter |
no test coverage detected