async function run()

in BuildTasks/ExtensionVersion/ExtensionVersion.ts [31:83]


async function run() {
    try {
        await common.runTfx(async tfx => {
            try {
                tfx.arg(["extension", "show", "--json", "--no-color"]);

                common.setTfxMarketplaceArguments(tfx);
                common.validateAndSetTfxManifestArguments(tfx);

                const versionAction = tl.getInput("versionAction", false);

                const outputStream = new common.TfxJsonOutputStream(console.log);
                const errorStream = new common.TfxJsonOutputStream(tl.error);
            
                const code: number = await tfx.exec(<any>{ outStream: outputStream, errorStream: errorStream, failOnStdErr: false, ignoreReturnCode: false } as tr.IExecOptions);
                if (code !== 0)
                {
                    throw `tfx exited with return code: ${code}`
                }
                const json = JSON.parse(outputStream.jsonString);
                let version: string = json.versions[0].version;

                console.log(`Latest version   : ${version}.`);
                console.log(`Requested action : ${versionAction}.`);

                if (versionAction !== "None") {
                    let versionparts: number[] = version.split(".").map(v => +v);
                    switch (versionAction) {
                        case "Major":
                            versionparts = [++versionparts[0], 0, 0];
                            break;
                        case "Minor":
                            versionparts = [versionparts[0], ++versionparts[1], 0];
                            break;
                        case "Patch":
                            versionparts = [versionparts[0], versionparts[1], ++versionparts[2]];
                            break;
                    }
                    version = versionparts.join(".");
                    console.log(`Updated to       : ${version}.`);
                }

                setVersion(version);
                tl.setResult(tl.TaskResult.Succeeded, `tfx exited with return code: ${code}`);
            }
            catch (err){
                tl.setResult(tl.TaskResult.Failed, err);
            }
        });
    } catch (err) {
        tl.setResult(tl.TaskResult.Failed, `Extension Version task failed: ${err}`);
    }
}