private testModuleEffectiveConfigForPipelines()

in packages/cli/lib/mdaa-cli.ts [297:324]


  private testModuleEffectiveConfigForPipelines(moduleEffectiveConfig: ModuleEffectiveConfig) {
    const pipelines = Object.entries(this.config.contents.devops?.pipelines || {})
      .filter(pipelineEntry => {
        const pipelineConfig = pipelineEntry[1];
        return (
          (pipelineConfig.domainFilter == undefined ||
            pipelineConfig.domainFilter?.includes(moduleEffectiveConfig.domainName)) &&
          (pipelineConfig.envFilter == undefined ||
            pipelineConfig.envFilter?.includes(moduleEffectiveConfig.envName)) &&
          (pipelineConfig.moduleFilter == undefined ||
            pipelineConfig.moduleFilter?.includes(moduleEffectiveConfig.moduleName))
        );
      })
      .map(entry => entry[0]);
    if (pipelines.length == 1) {
      console.log(
        `Module ${moduleEffectiveConfig.domainName}/${moduleEffectiveConfig.envName}/${moduleEffectiveConfig.moduleName} will be deployed via pipeline ${pipelines[0]}`,
      );
    } else if (pipelines.length > 1) {
      throw new Error(
        `Module ${moduleEffectiveConfig.domainName}/${moduleEffectiveConfig.envName}/${moduleEffectiveConfig.moduleName} matches multiple pipeline filters: ${pipelines}`,
      );
    } else {
      console.warn(
        `WARNING: Module ${moduleEffectiveConfig.domainName}/${moduleEffectiveConfig.envName}/${moduleEffectiveConfig.moduleName} matches no pipeline filters`,
      );
    }
  }