Either we make the modules aware of various build systems vsts, tfs, cloudbuild, ... or we create a module designed for that specific build system which configures defaults as appropriate.
This similar type of problem may occur when dealing with the various source control systems though ideally no default module will ever be designed in such a way it has a dependency on source control. But we may want to consider a pattern for dealing with these type of scenarios. To either add the support to the specific module making it aware and thereby declaring we support xyz systems or by adding an extension module for that specific system which hopefully will make it easier for others to onboard a different system if needed.
Some modules will likely want to be configured specially if it is a vsts build. Example build revision to be derived from the vsts build number value. https://www.visualstudio.com/en-us/docs/build/define/variables
Either we make the modules aware of various build systems vsts, tfs, cloudbuild, ... or we create a module designed for that specific build system which configures defaults as appropriate.
This similar type of problem may occur when dealing with the various source control systems though ideally no default module will ever be designed in such a way it has a dependency on source control. But we may want to consider a pattern for dealing with these type of scenarios. To either add the support to the specific module making it aware and thereby declaring we support xyz systems or by adding an extension module for that specific system which hopefully will make it easier for others to onboard a different system if needed.