diff --git a/cli/cmd/project/deployment/deployment.go b/cli/cmd/project/deployment/deployment.go index bb1b4a8eecd..186c6d1f5fa 100644 --- a/cli/cmd/project/deployment/deployment.go +++ b/cli/cmd/project/deployment/deployment.go @@ -5,9 +5,9 @@ import ( "github.com/spf13/cobra" ) -func DeploymentsCmd(ch *cmdutil.Helper) *cobra.Command { +func DeploymentCmd(ch *cmdutil.Helper) *cobra.Command { deploymentCmd := &cobra.Command{ - Use: "deployments", + Use: "deployment", Short: "Manage project deployments", } diff --git a/cli/cmd/project/deployment/list.go b/cli/cmd/project/deployment/list.go index d96ab910ddf..719c6c42b71 100644 --- a/cli/cmd/project/deployment/list.go +++ b/cli/cmd/project/deployment/list.go @@ -37,6 +37,16 @@ func ListCmd(ch *cmdutil.Helper) *cobra.Command { return fmt.Errorf("project name is required") } + // fetch the project + projResp, err := client.GetProject(cmd.Context(), &adminv1.GetProjectRequest{ + Org: ch.Org, + Project: project, + }) + if err != nil { + return err + } + + // fetch the deployments req := &adminv1.ListDeploymentsRequest{ Org: ch.Org, Project: project, @@ -49,6 +59,12 @@ func ListCmd(ch *cmdutil.Helper) *cobra.Command { return err } + for _, d := range resp.Deployments { + if d.Id == projResp.Project.PrimaryDeploymentId { + d.Branch += " (primary)" + break + } + } ch.PrintDeployments(resp.Deployments) return nil }, diff --git a/cli/cmd/project/project.go b/cli/cmd/project/project.go index d41dfba4aac..a2d830891a2 100644 --- a/cli/cmd/project/project.go +++ b/cli/cmd/project/project.go @@ -34,7 +34,7 @@ func ProjectCmd(ch *cmdutil.Helper) *cobra.Command { projectCmd.AddCommand(GitPushCmd(ch)) projectCmd.AddCommand(DeployCmd(ch)) projectCmd.AddCommand(TablesCmd(ch)) - projectCmd.AddCommand(deployment.DeploymentsCmd(ch)) + projectCmd.AddCommand(deployment.DeploymentCmd(ch)) return projectCmd } diff --git a/cli/pkg/printer/resources.go b/cli/pkg/printer/resources.go index d247daac54f..df1e780133b 100644 --- a/cli/pkg/printer/resources.go +++ b/cli/pkg/printer/resources.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "path/filepath" + "slices" "sort" "strconv" "strings" @@ -748,6 +749,21 @@ func toDeploymentsTable(deployments []*adminv1.Deployment) []*deployment { for _, d := range deployments { res = append(res, toDeploymentRow(d)) } + slices.SortFunc(res, func(a, b *deployment) int { + // group by environment + if a.Environment < b.Environment { + return -1 + } else if a.Environment > b.Environment { + return 1 + } + // sort by branch if environment is same + if a.Branch < b.Branch { + return -1 + } else if a.Branch > b.Branch { + return 1 + } + return 0 + }) return res } @@ -757,8 +773,8 @@ func toDeploymentRow(d *adminv1.Deployment) *deployment { status = fmt.Sprintf("%s: %s", status, d.StatusMessage) } return &deployment{ - Environment: d.Environment, Branch: d.Branch, + Environment: d.Environment, Status: status, } } @@ -787,8 +803,8 @@ func formatDeploymentStatus(status adminv1.DeploymentStatus) string { } type deployment struct { - Environment string `header:"environment" json:"environment"` Branch string `header:"branch" json:"branch"` + Environment string `header:"environment" json:"environment"` Status string `header:"status" json:"status"` } diff --git a/docs/docs/reference/cli/project/deployments/create.md b/docs/docs/reference/cli/project/deployment/create.md similarity index 78% rename from docs/docs/reference/cli/project/deployments/create.md rename to docs/docs/reference/cli/project/deployment/create.md index 7bccc27f106..17c28482ee3 100644 --- a/docs/docs/reference/cli/project/deployments/create.md +++ b/docs/docs/reference/cli/project/deployment/create.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments create +title: rill project deployment create --- -## rill project deployments create +## rill project deployment create Create a deployment for a specific branch ``` -rill project deployments create [] [flags] +rill project deployment create [] [flags] ``` ### Flags @@ -31,5 +31,5 @@ rill project deployments create [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployments/delete.md b/docs/docs/reference/cli/project/deployment/delete.md similarity index 72% rename from docs/docs/reference/cli/project/deployments/delete.md rename to docs/docs/reference/cli/project/deployment/delete.md index bbfc2d967c3..73b62b7a842 100644 --- a/docs/docs/reference/cli/project/deployments/delete.md +++ b/docs/docs/reference/cli/project/deployment/delete.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments delete +title: rill project deployment delete --- -## rill project deployments delete +## rill project deployment delete Delete a deployment by branch ``` -rill project deployments delete [] [flags] +rill project deployment delete [] [flags] ``` ### Flags @@ -29,5 +29,5 @@ rill project deployments delete [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployment/deployment.md b/docs/docs/reference/cli/project/deployment/deployment.md new file mode 100644 index 00000000000..20651a0de35 --- /dev/null +++ b/docs/docs/reference/cli/project/deployment/deployment.md @@ -0,0 +1,28 @@ +--- +note: GENERATED. DO NOT EDIT. +title: rill project deployment +--- +## rill project deployment + +Manage project deployments + +### Global flags + +``` + --api-token string Token for authenticating with the cloud API + --format string Output format (options: "human", "json", "csv") (default "human") + -h, --help Print usage + --interactive Prompt for missing required parameters (default true) + --org string Organization Name +``` + +### SEE ALSO + +* [rill project](../project.md) - Manage projects +* [rill project deployment create](create.md) - Create a deployment for a specific branch +* [rill project deployment delete](delete.md) - Delete a deployment by branch +* [rill project deployment list](list.md) - List all deployments for a project +* [rill project deployment show](show.md) - Show details of a deployment +* [rill project deployment start](start.md) - Start a deployment by branch +* [rill project deployment stop](stop.md) - Stop a deployment by branch + diff --git a/docs/docs/reference/cli/project/deployments/list.md b/docs/docs/reference/cli/project/deployment/list.md similarity index 76% rename from docs/docs/reference/cli/project/deployments/list.md rename to docs/docs/reference/cli/project/deployment/list.md index 8faaceff3a9..d6fabf70502 100644 --- a/docs/docs/reference/cli/project/deployments/list.md +++ b/docs/docs/reference/cli/project/deployment/list.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments list +title: rill project deployment list --- -## rill project deployments list +## rill project deployment list List all deployments for a project ``` -rill project deployments list [] [flags] +rill project deployment list [] [flags] ``` ### Flags @@ -30,5 +30,5 @@ rill project deployments list [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployments/show.md b/docs/docs/reference/cli/project/deployment/show.md similarity index 73% rename from docs/docs/reference/cli/project/deployments/show.md rename to docs/docs/reference/cli/project/deployment/show.md index 7088ab09328..150b8c60660 100644 --- a/docs/docs/reference/cli/project/deployments/show.md +++ b/docs/docs/reference/cli/project/deployment/show.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments show +title: rill project deployment show --- -## rill project deployments show +## rill project deployment show Show details of a deployment ``` -rill project deployments show [] [flags] +rill project deployment show [] [flags] ``` ### Flags @@ -29,5 +29,5 @@ rill project deployments show [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployments/start.md b/docs/docs/reference/cli/project/deployment/start.md similarity index 73% rename from docs/docs/reference/cli/project/deployments/start.md rename to docs/docs/reference/cli/project/deployment/start.md index 146ad2bd7e7..18ede29d4b4 100644 --- a/docs/docs/reference/cli/project/deployments/start.md +++ b/docs/docs/reference/cli/project/deployment/start.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments start +title: rill project deployment start --- -## rill project deployments start +## rill project deployment start Start a deployment by branch ``` -rill project deployments start [] [flags] +rill project deployment start [] [flags] ``` ### Flags @@ -29,5 +29,5 @@ rill project deployments start [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployments/stop.md b/docs/docs/reference/cli/project/deployment/stop.md similarity index 73% rename from docs/docs/reference/cli/project/deployments/stop.md rename to docs/docs/reference/cli/project/deployment/stop.md index 924e5fe1dbd..e3a3dadbd0e 100644 --- a/docs/docs/reference/cli/project/deployments/stop.md +++ b/docs/docs/reference/cli/project/deployment/stop.md @@ -1,13 +1,13 @@ --- note: GENERATED. DO NOT EDIT. -title: rill project deployments stop +title: rill project deployment stop --- -## rill project deployments stop +## rill project deployment stop Stop a deployment by branch ``` -rill project deployments stop [] [flags] +rill project deployment stop [] [flags] ``` ### Flags @@ -29,5 +29,5 @@ rill project deployments stop [] [flags] ### SEE ALSO -* [rill project deployments](deployments.md) - Manage project deployments +* [rill project deployment](deployment.md) - Manage project deployments diff --git a/docs/docs/reference/cli/project/deployments/deployments.md b/docs/docs/reference/cli/project/deployments/deployments.md deleted file mode 100644 index c8f3ec25db0..00000000000 --- a/docs/docs/reference/cli/project/deployments/deployments.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -note: GENERATED. DO NOT EDIT. -title: rill project deployments ---- -## rill project deployments - -Manage project deployments - -### Global flags - -``` - --api-token string Token for authenticating with the cloud API - --format string Output format (options: "human", "json", "csv") (default "human") - -h, --help Print usage - --interactive Prompt for missing required parameters (default true) - --org string Organization Name -``` - -### SEE ALSO - -* [rill project](../project.md) - Manage projects -* [rill project deployments create](create.md) - Create a deployment for a specific branch -* [rill project deployments delete](delete.md) - Delete a deployment by branch -* [rill project deployments list](list.md) - List all deployments for a project -* [rill project deployments show](show.md) - Show details of a deployment -* [rill project deployments start](start.md) - Start a deployment by branch -* [rill project deployments stop](stop.md) - Stop a deployment by branch - diff --git a/docs/docs/reference/cli/project/project.md b/docs/docs/reference/cli/project/project.md index 02f9d54d4ea..006f31cf163 100644 --- a/docs/docs/reference/cli/project/project.md +++ b/docs/docs/reference/cli/project/project.md @@ -28,7 +28,7 @@ Manage projects * [rill project connect-github](connect-github.md) - Deploy project to Rill Cloud by pulling project files from a git repository * [rill project delete](delete.md) - Delete the project * [rill project deploy](deploy.md) - Deploy project to Rill Cloud by using a Rill Managed Git repo -* [rill project deployments](deployments/deployments.md) - Manage project deployments +* [rill project deployment](deployment/deployment.md) - Manage project deployments * [rill project describe](describe.md) - Retrieve detailed state for a resource * [rill project edit](edit.md) - Edit the project details * [rill project hibernate](hibernate.md) - Hibernate project