in eng/tools/spec-gen-sdk-runner/src/command-helpers.ts [237:278]
export function generateArtifact(
commandInput: SpecGenSdkCmdInput,
result: string,
breakingChangeLabel: string,
hasBreakingChange: boolean,
hasManagementPlaneSpecs: boolean,
): number {
const specGenSdkArtifactName = "spec-gen-sdk-artifact";
const specGenSdkArtifactFileName = specGenSdkArtifactName + ".json";
const specGenSdkArtifactPath = "out/spec-gen-sdk-artifact";
const specGenSdkArtifactAbsoluteFolder = path.join(
commandInput.workingFolder,
specGenSdkArtifactPath,
);
try {
if (!fs.existsSync(specGenSdkArtifactAbsoluteFolder)) {
fs.mkdirSync(specGenSdkArtifactAbsoluteFolder, { recursive: true });
}
// Write artifact
const artifactInfo: SpecGenSdkArtifactInfo = {
language: commandInput.sdkLanguage,
result,
labelAction: hasBreakingChange,
isSpecGenSdkCheckRequired:
hasManagementPlaneSpecs && SpecGenSdkRequiredSettings[commandInput.sdkLanguage as SdkName],
};
fs.writeFileSync(
path.join(commandInput.workingFolder, specGenSdkArtifactPath, specGenSdkArtifactFileName),
JSON.stringify(artifactInfo, undefined, 2),
);
setVsoVariable("SpecGenSdkArtifactName", specGenSdkArtifactName);
setVsoVariable("SpecGenSdkArtifactPath", specGenSdkArtifactPath);
setVsoVariable("BreakingChangeLabelAction", hasBreakingChange ? "add" : "remove");
setVsoVariable("BreakingChangeLabel", breakingChangeLabel);
} catch (error) {
logMessage("Runner: errors occurred while processing breaking change", LogLevel.Group);
vsoLogIssue(`Runner: errors writing breaking change label artifacts:${error}`);
logMessage("ending group logging", LogLevel.EndGroup);
return 1;
}
return 0;
}