in src/configure/configure.ts [584:609]
private async createAndRunPipeline(): Promise<Build> {
return await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, title: Messages.configuringPipelineAndDeployment }, async () => {
try {
const taskAgentApi = await this.azureDevOpsClient.getTaskAgentApi();
const queues = await taskAgentApi.getAgentQueuesByNames([constants.HostedVS2017QueueName], this.inputs.project.name);
if (queues.length === 0) {
throw new Error(utils.format(Messages.noAgentQueueFound, constants.HostedVS2017QueueName));
}
const pipelineName = `${(this.inputs.targetResource.resource ? this.inputs.targetResource.resource.name : this.inputs.pipelineParameters.pipelineTemplate.label)}-${this.uniqueResourceNameSuffix}`;
const definitionPayload = AzureDevOpsHelper.getBuildDefinitionPayload(pipelineName, queues[0], this.inputs);
const buildApi = await this.azureDevOpsClient.getBuildApi();
const definition = await buildApi.createDefinition(definitionPayload, this.inputs.project.name);
return await buildApi.queueBuild({
definition: definition,
project: this.inputs.project,
sourceBranch: this.inputs.sourceRepository.branch,
sourceVersion: this.inputs.sourceRepository.commitId
}, this.inputs.project.name);
}
catch (error) {
telemetryHelper.logError(Layer, TracePoints.CreateAndQueuePipelineFailed, error);
throw error;
}
});
}