fix: Remove name from workspace builds (#3937)

Fixes #1561.
This commit is contained in:
Kyle Carberry
2022-09-07 19:49:57 +00:00
committed by GitHub
parent 762063ed8f
commit 720c9dadcf
22 changed files with 29 additions and 221 deletions
+13 -12
View File
@@ -4,6 +4,7 @@ import (
"fmt"
"io"
"os"
"strconv"
"time"
"github.com/spf13/cobra"
@@ -22,7 +23,7 @@ func state() *cobra.Command {
}
func statePull() *cobra.Command {
var buildName string
var buildNumber int
cmd := &cobra.Command{
Use: "pull <workspace> [file]",
Args: cobra.MinimumNArgs(1),
@@ -31,15 +32,15 @@ func statePull() *cobra.Command {
if err != nil {
return err
}
workspace, err := namedWorkspace(cmd, client, args[0])
if err != nil {
return err
}
var build codersdk.WorkspaceBuild
if buildName == "latest" {
if buildNumber == 0 {
workspace, err := namedWorkspace(cmd, client, args[0])
if err != nil {
return err
}
build = workspace.LatestBuild
} else {
build, err = client.WorkspaceBuildByName(cmd.Context(), workspace.ID, buildName)
build, err = client.WorkspaceBuildByUsernameAndWorkspaceNameAndBuildNumber(cmd.Context(), codersdk.Me, args[0], strconv.Itoa(buildNumber))
if err != nil {
return err
}
@@ -58,12 +59,12 @@ func statePull() *cobra.Command {
return os.WriteFile(args[1], state, 0600)
},
}
cmd.Flags().StringVarP(&buildName, "build", "b", "latest", "Specify a workspace build to target by name.")
cmd.Flags().IntVarP(&buildNumber, "build", "b", 0, "Specify a workspace build to target by name.")
return cmd
}
func statePush() *cobra.Command {
var buildName string
var buildNumber int
cmd := &cobra.Command{
Use: "push <workspace> <file>",
Args: cobra.ExactArgs(2),
@@ -77,10 +78,10 @@ func statePush() *cobra.Command {
return err
}
var build codersdk.WorkspaceBuild
if buildName == "latest" {
if buildNumber == 0 {
build = workspace.LatestBuild
} else {
build, err = client.WorkspaceBuildByName(cmd.Context(), workspace.ID, buildName)
build, err = client.WorkspaceBuildByUsernameAndWorkspaceNameAndBuildNumber(cmd.Context(), codersdk.Me, args[0], strconv.Itoa(buildNumber))
if err != nil {
return err
}
@@ -108,6 +109,6 @@ func statePush() *cobra.Command {
return cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStderr(), client, build.ID, before)
},
}
cmd.Flags().StringVarP(&buildName, "build", "b", "latest", "Specify a workspace build to target by name.")
cmd.Flags().IntVarP(&buildNumber, "build", "b", 0, "Specify a workspace build to target by name.")
return cmd
}
+2 -1
View File
@@ -4,6 +4,7 @@ import (
"bytes"
"os"
"path/filepath"
"strconv"
"strings"
"testing"
@@ -113,7 +114,7 @@ func TestStatePush(t *testing.T) {
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
workspace := coderdtest.CreateWorkspace(t, client, user.OrganizationID, template.ID)
coderdtest.AwaitWorkspaceBuildJob(t, client, workspace.LatestBuild.ID)
cmd, root := clitest.New(t, "state", "push", "--build", workspace.LatestBuild.Name, workspace.Name, "-")
cmd, root := clitest.New(t, "state", "push", "--build", strconv.Itoa(int(workspace.LatestBuild.BuildNumber)), workspace.Name, "-")
clitest.SetupConfig(t, client, root)
cmd.SetIn(strings.NewReader("some magic state"))
err := cmd.Execute()