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}`);
}
}