export async function setOutputVariables()

in tasks/Node/src/modules/task-utils/envutil.ts [35:63]


export async function setOutputVariables(armClient: ResourceManagementClient, envRgId: string, template: any): Promise<void> {
    let templateOutputs: any;
    
    if (template && template.outputs) {
        templateOutputs = template.outputs;
    }
    else if (template && template.properties && template.properties.contents && template.properties.contents.outputs) {
        templateOutputs = template.properties.contents.outputs;
    }
    else {
        tl.debug(`Ignoring. Unable to extract 'outputs' from provided 'template' parameter.`);
        return;
    }

    const envRgName: string = resutil.getResourceName(envRgId, 'resourcegroups');
    const deploymentOutput: any[] = await deployutil.getDeploymentOutput(armClient, envRgName);
    deploymentOutput.forEach((element: any[]) => {
        const name: string = element[0];
        const value: string = element[1];
        const key = Object.keys(templateOutputs).find(key => key.toLowerCase() === name.toLowerCase());
        if (key) {
            const type: string = templateOutputs[key].type;
            if (type) {
                const secret: boolean = type.toLowerCase().indexOf('secure') !== -1;
                tl.setVariable(name, value, secret);
            }
        }
    });
}