diff --git a/README.md b/README.md index 85990004..f4f3fbea 100644 --- a/README.md +++ b/README.md @@ -149,9 +149,10 @@ Development of the Tekton Pipelines Extension is largely following development o ### Extension Configuration Settings - * `Tekton Pipelines: Show Channel On Output` - Show Tekton Pipelines output channel when new text added to output stream + * `Tekton Pipelines: Show Channel On Output` - Show Tekton Pipelines output channel when new text added to output stream. * `Tekton Pipelines: Output verbosity level` - Output verbosity level (value between 0 and 9) for Tekton Pipeline Start, Push and Watch commands in output channel and integrated terminal. * `Tekton Pipelines: Show reference resource notification` - Enable/disable to check Task and ClusterTask Reference Resource. + * `Tekton Pipelines: Show logs on pipeline start` - Show pipelineRun follow logs while starting pipeline. ### Dependencies diff --git a/package.json b/package.json index a8d5b05e..105b0906 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,12 @@ "default": false, "description": "Show Tekton Pipeline output channel when new text added to output stream" }, + "vs-tekton.showLogsOnPipelineStart": { + "title": "Start pipeline with logs", + "type": "boolean", + "default": true, + "description": "Show PipelineRun follow logs while starting pipeline." + }, "vs-tekton.outputVerbosityLevel": { "title": "Output Verbosity Level", "type": "number", @@ -980,3 +986,4 @@ "vscode-kubernetes-tools-api": "1.3.0" } } + diff --git a/src/tekton/addtrigger.ts b/src/tekton/addtrigger.ts index 74883b52..6ab512cd 100644 --- a/src/tekton/addtrigger.ts +++ b/src/tekton/addtrigger.ts @@ -27,6 +27,8 @@ import { getStderrString } from '../util/stderrstring'; import { Command } from '../cli-command'; import semver = require('semver'); import { ClusterTaskModel, EventListenerModel, PipelineRunModel, TaskModel, TriggerTemplateModel } from '../util/resource-kind'; +import { showPipelineRunPreview } from '../pipeline/pipeline-preview'; +import { PipelineRun } from './pipelinerun'; export enum WorkspaceResource { Secret = 'secret', @@ -96,6 +98,14 @@ export async function k8sCreate(trigger: TriggerTemplateKind | EventListenerKind if (kind === PipelineRunModel.kind && !result.error) { const message = 'Pipeline successfully started'; telemetryLog(commandId, message); + if (TektonItem.ShowPipelineRun()) { + const pipelineRunNameRegex = new RegExp(`${trigger.metadata.generateName}\\w*`); + const pipelineRunName = result.stdout.match(pipelineRunNameRegex)[0]; + if (pipelineRunName) { + await showPipelineRunPreview(pipelineRunName); + if (vscode.workspace.getConfiguration('vs-tekton').get('showLogsOnPipelineStart')) PipelineRun.pipelineRunFollowLogs(pipelineRunName); + } + } vscode.window.showInformationMessage(message); } if ((kind === TaskModel.kind || kind === ClusterTaskModel.kind) && !result.error) { diff --git a/src/tekton/pipelinerun.ts b/src/tekton/pipelinerun.ts index 8680914e..80f12853 100644 --- a/src/tekton/pipelinerun.ts +++ b/src/tekton/pipelinerun.ts @@ -56,10 +56,14 @@ export class PipelineRun extends TektonItem { if (!pipelineRun){ return; } + this.pipelineRunFollowLogs(pipelineRun.getName()); + } + + static async pipelineRunFollowLogs(pipelineRunName: string): Promise { if (workspace.getConfiguration('vs-tekton').get('showLogInEditor')) { - showLogInEditor(Command.showPipelineRunFollowLogs(pipelineRun.getName()), `Log: ${pipelineRun.getName()}`); + showLogInEditor(Command.showPipelineRunFollowLogs(pipelineRunName), `Log: ${pipelineRunName}`); } else { - PipelineRun.tkn.executeInTerminal(Command.showPipelineRunFollowLogs(pipelineRun.getName())); + PipelineRun.tkn.executeInTerminal(Command.showPipelineRunFollowLogs(pipelineRunName)); } }