Problem/Motivation
Currently, job-specific directories have (for example) a drupalci.yml file and SimpletestJob php class.
However, the drupalci.yml file is really a template, and the SimpletestJob contains primarily Job configuration information.
In #2809941: Re-think config we are generally moving responsibility for config resolution to the most-specific plugin for that config. This means that build template YAML files should not have DCI variables in them, and that we can transition templates to being more of a definition for the process rather than variable replacement.
Furthermore, config files (such as those in ~/.drupalci/config) give us a namespace for config, but don't allow us to define a process other than by setting a DCI_ variable. Since RunCommand only allows us to specify a config file, we are not directly requesting a process, but instead some config that implies a process.
Proposed resolution
Change the argument of RunCommand to specify a build definition.
Within the codebase there will be a directory called builddefinitions/, and it will hold yaml files such as default.yml, patch.yml, and regression.yml.
These build definition files will define a build process. They can optionally define a default for config options within the build. They should not define DCI_ -type variable replacements.
RunCommand's single argument will map to these yaml build definition file names.
The build definitions will then drive the creation of various step/task plugins which will figure out their own config based on their needs.
Comments
Comment #4
MixologicComment #5
mile23Updated to reflect IRC chat with @Mixologic.
Comment #6
mile23Comment #7
mile23Comment #8
mile23This is basically postponed on #2809941: Re-think config so we can move local config to the template file.
Comment #11
MixologicThe config set paradigm has been removed.
Comment #12
MixologicThis was merged in as part of the larger refactor.