From ef22a6610589300d55438b58337f76b623d4389a Mon Sep 17 00:00:00 2001 From: Vladislav Sukhin Date: Mon, 29 Jul 2024 17:36:07 +0300 Subject: [PATCH] fix: download artifacts for test workflow run Signed-off-by: Vladislav Sukhin --- .../commands/testworkflows/run.go | 20 +++++++++++++++---- docs/docs/cli/testkube_run_testworkflow.md | 4 ++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cmd/kubectl-testkube/commands/testworkflows/run.go b/cmd/kubectl-testkube/commands/testworkflows/run.go index a9a562142c8..3bc06920646 100644 --- a/cmd/kubectl-testkube/commands/testworkflows/run.go +++ b/cmd/kubectl-testkube/commands/testworkflows/run.go @@ -12,6 +12,7 @@ import ( "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common/render" + "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/tests" "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testworkflows/renderer" "github.com/kubeshop/testkube/cmd/testworkflow-init/instructions" apiclientv1 "github.com/kubeshop/testkube/pkg/api/v1/client" @@ -31,10 +32,14 @@ var ( func NewRunTestWorkflowCmd() *cobra.Command { var ( - executionName string - config map[string]string - watchEnabled bool - disableWebhooks bool + executionName string + config map[string]string + watchEnabled bool + disableWebhooks bool + downloadArtifactsEnabled bool + downloadDir string + format string + masks []string ) cmd := &cobra.Command{ @@ -89,6 +94,9 @@ func NewRunTestWorkflowCmd() *cobra.Command { if watchEnabled { exitCode = uiWatch(execution, client) ui.NL() + if downloadArtifactsEnabled { + tests.DownloadTestWorkflowArtifacts(execution.Id, downloadDir, format, masks, client, outputPretty) + } } else { uiShellWatchExecution(execution.Id) } @@ -105,6 +113,10 @@ func NewRunTestWorkflowCmd() *cobra.Command { cmd.Flags().BoolVarP(&watchEnabled, "watch", "f", false, "watch for changes after start") cmd.Flags().BoolVar(&disableWebhooks, "disable-webhooks", false, "disable webhooks for this execution") cmd.Flags().MarkDeprecated("enable-webhooks", "enable-webhooks is deprecated") + cmd.Flags().StringVar(&downloadDir, "download-dir", "artifacts", "download dir") + cmd.Flags().BoolVarP(&downloadArtifactsEnabled, "download-artifacts", "d", false, "download artifacts automatically") + cmd.Flags().StringVar(&format, "format", "folder", "data format for storing files, one of folder|archive") + cmd.Flags().StringArrayVarP(&masks, "mask", "", []string{}, "regexp to filter downloaded files, single or comma separated, like report/.* or .*\\.json,.*\\.js$") return cmd } diff --git a/docs/docs/cli/testkube_run_testworkflow.md b/docs/docs/cli/testkube_run_testworkflow.md index 7c6d5caf83b..3e76ca14ba3 100644 --- a/docs/docs/cli/testkube_run_testworkflow.md +++ b/docs/docs/cli/testkube_run_testworkflow.md @@ -11,7 +11,11 @@ testkube run testworkflow [name] [flags] ``` --config stringToString configuration variables in a form of name1=val1 passed to executor (default []) --disable-webhooks disable webhooks for this execution + -d, --download-artifacts download artifacts automatically + --download-dir string download dir (default "artifacts") + --format string data format for storing files, one of folder|archive (default "folder") -h, --help help for testworkflow + --mask stringArray regexp to filter downloaded files, single or comma separated, like report/.* or .*\.json,.*\.js$ -n, --name string execution name, if empty will be autogenerated -f, --watch watch for changes after start ```