Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,16 @@ import {
SDK,
SDKPipelineStatus,
TaskResult,
TaskResultStatus,
Trigger,
Trigger
} from '@azure-tools/sdk-generation-lib';
import * as fs from 'fs';
import * as path from 'path';

import {
PrepareArtifactFilesInput,
prepareArtifactFilesInput,
prepareResultArtifactInput,
PrepareResultArtifactInput,
prepareResultArtifactInput
} from '../../cliSchema/prepareArtifactFilesCliConfig';
import { GitOperationWrapper } from '../../utils/GitOperationWrapper';

Expand Down Expand Up @@ -136,34 +135,34 @@ function prepareResult(pipelineStatus: SDKPipelineStatus) {
let event: PipelineRunEvent = undefined;

switch (pipelineStatus) {
case 'in_progress':
event = {
status: 'in_progress',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
} as InProgressEvent;
break;
case 'completed':
if (!config.resultsPath || !config.logPath) {
throw new Error(`Invalid completed event parameter!`);
}
case 'in_progress':
event = {
status: 'in_progress',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId
} as InProgressEvent;
break;
case 'completed':
if (!config.resultsPath || !config.logPath) {
throw new Error(`Invalid completed event parameter!`);
}

const taskResults: TaskResult[] = getTaskResults(config.resultsPath);
const taskTotalResult: TaskResult = generateTotalResult(taskResults, config.pipelineBuildId);
event = {
status: 'completed',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
logPath: config.logPath,
result: taskTotalResult,
} as CompletedEvent;
break;
default:
throw new Error(`Unsupported status: ` + (pipelineStatus as string));
const taskResults: TaskResult[] = getTaskResults(config.resultsPath);
const taskTotalResult: TaskResult = generateTotalResult(taskResults, config.pipelineBuildId);
event = {
status: 'completed',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
logPath: config.logPath,
result: taskTotalResult
} as CompletedEvent;
break;
default:
throw new Error(`Unsupported status: ` + (pipelineStatus as string));
}

fs.writeFileSync(config.artifactDir + `/` + pipelineStatus + `/result.json`, JSON.stringify(event, null, 2), {
encoding: 'utf-8',
encoding: 'utf-8'
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
SDKPipelineStatus,
StorageType,
TaskResult,
Trigger,
Trigger
} from '@azure-tools/sdk-generation-lib';
import * as fs from 'fs';

Expand All @@ -30,7 +30,7 @@ import {
ResultPublisherDBResultInput,
resultPublisherDBResultInput,
ResultPublisherEventHubInput,
resultPublisherEventHubInput,
resultPublisherEventHubInput
} from '../../cliSchema/publishResultConfig';

async function publishBlob() {
Expand All @@ -40,7 +40,7 @@ async function publishBlob() {
pipelineBuildId: config.pipelineBuildId,
sdkGenerationName: config.sdkGenerationName,
azureStorageBlobSasUrl: config.azureStorageBlobSasUrl,
azureBlobContainerName: config.azureBlobContainerName,
azureBlobContainerName: config.azureBlobContainerName
};
const resultBlobPublisher: ResultBlobPublisher = new ResultBlobPublisher(context);
await resultBlobPublisher.uploadLogsAndResult(config.logsAndResultPath, config.taskName as AzureSDKTaskName);
Expand Down Expand Up @@ -76,7 +76,7 @@ function initMongoConnectContext(config: ResultPublisherDBCodeGenerationInput):
database: config.mongodb.database,
ssl: config.mongodb.ssl,
synchronize: true,
logging: true,
logging: true
};

return mongoConnectContext;
Expand Down Expand Up @@ -132,37 +132,37 @@ async function publishEventhub(pipelineStatus: SDKPipelineStatus) {
const publisher: ResultEventhubPublisher = new ResultEventhubPublisher(config.eventHubConnectionString);

switch (pipelineStatus) {
case 'queued':
event = {
status: 'queued',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
} as QueuedEvent;
break;
case 'in_progress':
event = {
status: 'in_progress',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
} as InProgressEvent;
break;
case 'completed':
if (!config.resultsPath || !config.logPath) {
throw new Error(`Invalid completed event parameter!`);
}
case 'queued':
event = {
status: 'queued',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId
} as QueuedEvent;
break;
case 'in_progress':
event = {
status: 'in_progress',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId
} as InProgressEvent;
break;
case 'completed':
if (!config.resultsPath || !config.logPath) {
throw new Error(`Invalid completed event parameter!`);
}

const taskResults: TaskResult[] = getTaskResults(config.resultsPath);
const taskTotalResult: TaskResult = generateTotalResult(taskResults, config.pipelineBuildId);
event = {
status: 'completed',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
logPath: config.logPath,
result: taskTotalResult,
} as CompletedEvent;
break;
default:
throw new Error(`Unsupported status: ` + (pipelineStatus as string));
const taskResults: TaskResult[] = getTaskResults(config.resultsPath);
const taskTotalResult: TaskResult = generateTotalResult(taskResults, config.pipelineBuildId);
event = {
status: 'completed',
trigger: trigger,
pipelineBuildId: config.pipelineBuildId,
logPath: config.logPath,
result: taskTotalResult
} as CompletedEvent;
break;
default:
throw new Error(`Unsupported status: ` + (pipelineStatus as string));
}
await publisher.publishEvent(event);
await publisher.close();
Expand All @@ -174,17 +174,17 @@ async function main() {
const pipelineStatus = args['pipelineStatus'];

switch (storageType as StorageType) {
case StorageType.Blob:
await publishBlob();
break;
case StorageType.Db:
await publishDB(pipelineStatus);
break;
case StorageType.EventHub:
await publishEventhub(pipelineStatus);
break;
default:
throw new Error(`Unknown storageType:${storageType}!`);
case StorageType.Blob:
await publishBlob();
break;
case StorageType.Db:
await publishDB(pipelineStatus);
break;
case StorageType.EventHub:
await publishEventhub(pipelineStatus);
break;
default:
throw new Error(`Unknown storageType:${storageType}!`);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,45 +17,45 @@ export const generateResultCliInput = convict<GenerateResultCliInput>({
pipelineBuildId: {
default: null,
format: assertNullOrEmpty,
arg: 'buildId',
arg: 'buildId'
},
logfile: {
default: null,
format: assertNullOrEmpty,
arg: 'logfile',
arg: 'logfile'
},
logFilterStr: {
default: null,
nullable: true,
format: String,
arg: 'logFilterStr',
arg: 'logFilterStr'
},
taskName: {
default: null,
format: ['init', 'generateAndBuild', 'mockTest', 'liveTest'],
arg: 'taskName',
arg: 'taskName'
},
exeResult: {
default: null,
nullable: true,
format: ['succeeded', 'failed'],
arg: 'exeResult',
arg: 'exeResult'
},
taskOutputPath: {
default: null,
nullable: true,
format: String,
arg: 'taskOutputPath',
arg: 'taskOutputPath'
},
resultOutputPath: {
default: null,
format: assertNullOrEmpty,
arg: 'resultOutputPath',
arg: 'resultOutputPath'
},
dockerResultFile: {
default: null,
nullable: true,
format: String,
arg: 'dockerResultFile',
},
arg: 'dockerResultFile'
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ export const prepareArtifactFilesInput = convict<PrepareArtifactFilesInput>({
generateAndBuildOutputFile: {
default: null,
format: assertNullOrEmpty,
arg: 'generateAndBuildOutputFile',
arg: 'generateAndBuildOutputFile'
},
artifactDir: {
doc: 'The dir to publish artifact',
default: null,
format: assertNullOrEmpty,
arg: 'artifactDir',
arg: 'artifactDir'
},
language: {
default: null,
format: ['js', 'python', 'go', 'net', 'java'],
arg: 'language',
},
arg: 'language'
}
});

export class PrepareResultArtifactInput {
Expand All @@ -39,30 +39,30 @@ export const prepareResultArtifactInput = convict<PrepareResultArtifactInput>({
pipelineBuildId: {
default: null,
format: assertNullOrEmpty,
arg: 'buildId',
arg: 'buildId'
},
trigger: {
default: null,
format: assertNullOrEmpty,
arg: 'trigger',
arg: 'trigger'
},
artifactDir: {
doc: 'The dir to publish artifact',
default: null,
format: assertNullOrEmpty,
arg: 'artifactDir',
arg: 'artifactDir'
},
logPath: {
default: null,
nullable: true,
format: String,
arg: 'logPath',
arg: 'logPath'
},
resultsPath: {
doc: 'task result files array',
default: null,
nullable: true,
format: String,
arg: 'resultsPath',
},
arg: 'resultsPath'
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export class ResultDBPublisher {
ssl: this.context.ssl,
synchronize: this.context.synchronize,
logging: this.context.logging,
entities: [TaskResultEntity, CodeGeneration],
entities: [TaskResultEntity, CodeGeneration]
});
}

Expand Down Expand Up @@ -101,9 +101,9 @@ export class ResultBlobPublisher {
const logsAndResultPathArray = JSON.parse(logsAndResultPath);
for (const file of logsAndResultPathArray) {
if (fs.existsSync(file)) {
const blobName: string = file.includes('.json')
? `${this.pipelineBuildId}/logs/${this.sdkGenerationName}-${taskName}-result.json`
: `${this.pipelineBuildId}/logs/${this.sdkGenerationName}-${taskName}.log`;
const blobName: string = file.includes('.json') ?
`${this.pipelineBuildId}/logs/${this.sdkGenerationName}-${taskName}-result.json` :
`${this.pipelineBuildId}/logs/${this.sdkGenerationName}-${taskName}.log`;
await this.azureBlobClient.publishBlob(file, blobName);
logger.info(`Publish ${file} Success !!!`);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ export function parseGenerateLog(
errorCount: errorNum,
warningCount: warnNum,
messages: messages,
result: taskExeResult,
result: taskExeResult
};

return result;
Expand Down
Loading