private async createAndRunPipeline()

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