diff --git a/.github/workflows/databases.yml b/.github/workflows/databases.yml index 66c4315..9a38c46 100644 --- a/.github/workflows/databases.yml +++ b/.github/workflows/databases.yml @@ -139,7 +139,7 @@ jobs: --allocated-storage 10 \ --max-allocated-storage 20 \ aurora-mysql - timeout-minutes: 25 + timeout-minutes: 35 env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} diff --git a/app/app.go b/app/app.go index 64aa6ab..bf596be 100644 --- a/app/app.go +++ b/app/app.go @@ -891,11 +891,12 @@ func (a *App) SetScaleParameter(processType string, minProcessCount, maxProcessC var parameterName string if a.IsReviewApp() { parameterName = fmt.Sprintf("/apppack/pipelines/%s/review-apps/pr/%s/scaling", a.Name, *a.ReviewApp) - } else if a.Pipeline { - return fmt.Errorf("scaling/resizing is not supported directly on pipelines") } else { parameterName = fmt.Sprintf("/apppack/apps/%s/scaling", a.Name) } + if a.Pipeline && *maxProcessCount != *minProcessCount { + return fmt.Errorf("auto-scaling is not supported on pipelines") + } parameterOutput, err := ssmSvc.GetParameter(&ssm.GetParameterInput{ Name: ¶meterName, }) diff --git a/cmd/config.go b/cmd/config.go index 4e70901..fcde224 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -23,7 +23,8 @@ import ( "os" "strings" - "github.com/juju/ansiterm/tabwriter" + "github.com/juju/ansiterm" + "github.com/mattn/go-isatty" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -32,7 +33,6 @@ import ( "github.com/apppackio/apppack/app" "github.com/apppackio/apppack/bridge" "github.com/apppackio/apppack/ui" - "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -110,6 +110,13 @@ var unsetCmd = &cobra.Command{ }, } +func printRow(w *ansiterm.TabWriter, name, value string) { + w.SetForeground(ansiterm.Green) + fmt.Fprintf(w, "%s:", name) + w.SetForeground(ansiterm.Default) + fmt.Fprintf(w, "\t%s\n", value) +} + // listCmd represents the list command var listCmd = &cobra.Command{ Use: "list", @@ -117,9 +124,11 @@ var listCmd = &cobra.Command{ DisableFlagsInUseLine: true, Args: cobra.ExactArgs(0), Run: func(cmd *cobra.Command, args []string) { - w := new(tabwriter.Writer) // minwidth, tabwidth, padding, padchar, flags - w.Init(os.Stdout, 8, 8, 0, '\t', 0) + w := ansiterm.NewTabWriter(os.Stdout, 8, 8, 0, '\t', 0) + if isatty.IsTerminal(os.Stdout.Fd()) { + w.SetColorCapable(true) + } ui.StartSpinner() a, err := app.Init(AppName, UseAWSCredentials, SessionDurationSeconds) checkErr(err) @@ -130,10 +139,10 @@ var listCmd = &cobra.Command{ for _, value := range parameters { parts := strings.Split(*value.Name, "/") varname := parts[len(parts)-1] - fmt.Fprintf(w, "%s\t%s\t\n", aurora.Green(fmt.Sprintf("%s:", varname)), *value.Value) + printRow(w, varname, *value.Value) } ui.PrintHeaderln(fmt.Sprintf("%s Config Vars", AppName)) - w.Flush() + checkErr(w.Flush()) if a.IsReviewApp() { fmt.Println() a.ReviewApp = nil @@ -144,10 +153,10 @@ var listCmd = &cobra.Command{ for _, value := range parameters { parts := strings.Split(*value.Name, "/") varname := parts[len(parts)-1] - fmt.Fprintf(w, "%s\t%s\t\n", aurora.Green(fmt.Sprintf("%s:", varname)), *value.Value) + printRow(w, varname, *value.Value) } ui.PrintHeaderln(fmt.Sprintf("%s Config Vars (inherited)", a.Name)) - w.Flush() + checkErr(w.Flush()) } }, } diff --git a/cmd/ps.go b/cmd/ps.go index 8df06a9..3d0e8c5 100644 --- a/cmd/ps.go +++ b/cmd/ps.go @@ -170,7 +170,11 @@ var psResizeCmd = &cobra.Command{ checkErr(a.ValidateECSTaskSize(*size)) err = a.ResizeProcess(processType, size.CPU, size.Memory) checkErr(err) - printSuccess(fmt.Sprintf("resizing %s", processType)) + if a.Pipeline { + printSuccess(fmt.Sprintf("set default size for %s processes on review apps", processType)) + } else { + printSuccess(fmt.Sprintf("resizing %s", processType)) + } }, }