From 3ef2c9b7f012ea798e1e2912c211f16646968441 Mon Sep 17 00:00:00 2001 From: TP Honey Date: Tue, 28 Sep 2021 17:35:27 +0100 Subject: [PATCH] (dron-124) Add new command for build incomplete V2 --- drone/build/build.go | 1 + drone/build/build_queue_v2.go | 88 +++++++++++++++++++++++++++++++++++ go.mod | 2 +- go.sum | 4 +- 4 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 drone/build/build_queue_v2.go diff --git a/drone/build/build.go b/drone/build/build.go index 92d40c1..36e2b50 100644 --- a/drone/build/build.go +++ b/drone/build/build.go @@ -18,5 +18,6 @@ var Command = cli.Command{ buildPromoteCmd, buildRollbackCmd, buildQueueCmd, + buildQueueV2Cmd, }, } diff --git a/drone/build/build_queue_v2.go b/drone/build/build_queue_v2.go new file mode 100644 index 0000000..456f2cb --- /dev/null +++ b/drone/build/build_queue_v2.go @@ -0,0 +1,88 @@ +package build + +import ( + "os" + "text/template" + + "github.com/drone/drone-cli/drone/internal" + "github.com/drone/funcmap" + "github.com/urfave/cli" +) + +var buildQueueV2Cmd = cli.Command{ + Name: "queue-v2", + Usage: "show build queue", + ArgsUsage: "", + Action: buildQueueV2, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "format", + Usage: "format output", + Value: tmplQueueV2Status, + }, + cli.StringFlag{ + Name: "repo", + Usage: "repo filter", + }, + }, +} + +func buildQueueV2(c *cli.Context) error { + client, err := internal.NewClient(c) + if err != nil { + return err + } + + instances, err := client.IncompleteV2() + if err != nil { + return err + } + + tmpl, err := template.New("_").Funcs(funcmap.Funcs).Parse(c.String("format") + "\n") + if err != nil { + return err + } + + slug := c.String("repo") + + for _, instance := range instances { + if slug != "" && instance.RepoSlug != slug { + continue + } + templateErr := tmpl.Execute(os.Stdout, instance) + if templateErr != nil { + return templateErr + } + } + return nil +} + +// template for build queue v2 information +var tmplQueueV2Status = "\x1b[33m{{ .RepoSlug }}#{{ .BuildNumber }} \x1b[0m" + ` +Repo Namespace: {{ .RepoNamespace }} +Repo Name: {{ .RepoName }} +Repo Slug: {{ .RepoSlug }} +Build Number: {{ .BuildNumber }} +Build Author: {{ .BuildAuthor }} +Build Author Name : {{ .BuildAuthorName }} +Build Author Email: {{ .BuildAuthorEmail }} +Build Author Avatar : {{ .BuildAuthorAvatar }} +Build Sender: {{ .BuildSender }} +Build Started: {{ .BuildStarted | time }} +Build Finished: {{ .BuildFinished | time}} +Build Created: {{ .BuildCreated | time}} +Build Updated: {{ .BuildUpdated | time }} +Stage Name: {{ .StageName }} +Stage Kind: {{ .StageKind }} +Stage Type: {{ .StageType }} +Stage Status: {{ .StageStatus }} +Stage Machine: {{ .StageMachine }} +Stage OS: {{ .StageOS }} +Stage Arch: {{ .StageArch }} +Stage Variant: {{ .StageVariant }} +Stage Kernel: {{ .StageKernel }} +Stage Limit: {{ .StageLimit }} +Stage Limit Repo: {{ .StageLimitRepo }} +Stage Started: {{ .StageStarted | time }} +Stage Stopped: {{ .StageStopped | time }} +` diff --git a/go.mod b/go.mod index 904a163..324d6b2 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ replace github.com/docker/docker => github.com/docker/engine v17.12.0-ce-rc1.0.2 require ( github.com/docker/go-units v0.3.3 - github.com/drone/drone-go v1.6.2 + github.com/drone/drone-go v1.7.0 github.com/drone/drone-runtime v1.1.1-0.20200623162453-61e33e2cab5d github.com/drone/drone-yaml v0.0.0-20190729072335-70fa398b3560 github.com/drone/envsubst v1.0.3 diff --git a/go.sum b/go.sum index 68694ff..bf329b0 100644 --- a/go.sum +++ b/go.sum @@ -33,8 +33,8 @@ github.com/docker/go-connections v0.3.0 h1:3lOnM9cSzgGwx8VfK/NGOW5fLQ0GjIlCkaktF github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/drone/drone-go v1.6.2 h1:QT7o6Bfe5UCUea4ZU74JfzgkwFYbBNduuSQZTr1fQJE= -github.com/drone/drone-go v1.6.2/go.mod h1:fxCf9jAnXDZV1yDr0ckTuWd1intvcQwfJmTRpTZ1mXg= +github.com/drone/drone-go v1.7.0 h1:oEFWVcagBmAkVuFBpBq9lImZX1caDM+zRsmC4O1vXgQ= +github.com/drone/drone-go v1.7.0/go.mod h1:fxCf9jAnXDZV1yDr0ckTuWd1intvcQwfJmTRpTZ1mXg= github.com/drone/drone-runtime v1.0.7-0.20190729070836-38f28a11afe8/go.mod h1:+osgwGADc/nyl40J0fdsf8Z09bgcBZXvXXnLOY48zYs= github.com/drone/drone-runtime v1.1.1-0.20200623162453-61e33e2cab5d h1:P5HI/Y9hARTZ3F3EKs0kYijhjXZWQRQHYn1neTi0pWM= github.com/drone/drone-runtime v1.1.1-0.20200623162453-61e33e2cab5d/go.mod h1:4/2QToW5+HGD0y1sTw7X35W1f7YINS14UfDY4isggT8=