0
0
forked from toolshed/abra

Compare commits

..

1 Commits

Author SHA1 Message Date
9daac54144 fix(move): does not error when secret already exists on new server 2025-10-31 19:26:50 +01:00
17 changed files with 483 additions and 1085 deletions

View File

@ -152,6 +152,7 @@ checkout as-is. Recipe commit hashes are also supported as values for
log.Fatal(err) log.Fatal(err)
} }
appPkg.ExposeAllEnv(stackName, compose, app.Env)
appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name)
appPkg.SetChaosLabel(compose, stackName, internal.Chaos) appPkg.SetChaosLabel(compose, stackName, internal.Chaos)
if internal.Chaos { if internal.Chaos {
@ -170,9 +171,6 @@ checkout as-is. Recipe commit hashes are also supported as values for
} }
appPkg.SetVersionLabel(compose, stackName, versionLabel) appPkg.SetVersionLabel(compose, stackName, versionLabel)
newRecipeWithDeployVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, toDeployVersion)
appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithDeployVersion)
envVars, err := appPkg.CheckEnv(app) envVars, err := appPkg.CheckEnv(app)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)

View File

@ -1,50 +1,28 @@
package app package app
import ( import (
"context"
"fmt" "fmt"
"os"
"path"
"path/filepath"
"regexp"
"sort" "sort"
"strings" "strings"
"coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/cli/internal"
"coopcloud.tech/abra/pkg/app"
appPkg "coopcloud.tech/abra/pkg/app"
"coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/autocomplete"
"coopcloud.tech/abra/pkg/client"
"coopcloud.tech/abra/pkg/config"
containerPkg "coopcloud.tech/abra/pkg/container"
contextPkg "coopcloud.tech/abra/pkg/context"
"coopcloud.tech/abra/pkg/formatter" "coopcloud.tech/abra/pkg/formatter"
"coopcloud.tech/abra/pkg/i18n" "coopcloud.tech/abra/pkg/i18n"
"coopcloud.tech/abra/pkg/log"
"coopcloud.tech/abra/pkg/upstream/stack"
"github.com/docker/docker/api/types/filters"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
// translators: `abra app env` aliases. use a comma separated list of aliases // translators: `abra app env` aliases. use a comma separated list of aliases with
// with no spaces in between // no spaces in between
var appEnvAliases = i18n.G("e") var appEnvAliases = i18n.G("e")
// translators: `abra app env list` aliases. use a comma separated list of var AppEnvCommand = &cobra.Command{
// aliases with no spaces in between // translators: `app env` command
var appEnvListAliases = i18n.G("l,ls") Use: i18n.G("env <domain> [flags]"),
Aliases: strings.Split(appEnvAliases, ","),
// translators: `abra app env pull` aliases. use a comma separated list of // translators: Short description for `app env` command
// aliases with no spaces in between Short: i18n.G("Show app .env values"),
var appEnvPullAliases = i18n.G("pl,p") Example: i18n.G(" abra app env 1312.net"),
var AppEnvListCommand = &cobra.Command{
// translators: `app env list` command
Use: i18n.G("list <domain> [flags]"),
Aliases: strings.Split(appEnvListAliases, ","),
// translators: Short description for `app env list` command
Short: i18n.G("List all app environment values"),
Example: i18n.G(" abra app env list 1312.net"),
Args: cobra.ExactArgs(1), Args: cobra.ExactArgs(1),
ValidArgsFunction: func( ValidArgsFunction: func(
cmd *cobra.Command, cmd *cobra.Command,
@ -71,274 +49,3 @@ var AppEnvListCommand = &cobra.Command{
fmt.Println(overview) fmt.Println(overview)
}, },
} }
var AppEnvPullCommand = &cobra.Command{
// translators: `app pull` command
Use: i18n.G("pull <domain> [flags]"),
Aliases: strings.Split(appEnvPullAliases, ","),
// translators: Short description for `app env pull` command
Short: i18n.G("Pull app environment values from a deployed app"),
Long: i18n.G(`Pull app environment values from a deploymed app.
A convenient command for when you've lost your app environment file or want to
synchronize your local app environment values with what is deployed live.`),
Example: i18n.G(` # pull existing .env file and overwrite local values
abra app env pull 1312.net --force
# pull lost app .env file
abra app env pull my.gitea.net --server 1312.net`),
Args: cobra.MaximumNArgs(2),
ValidArgsFunction: func(
cmd *cobra.Command,
args []string,
toComplete string) ([]string, cobra.ShellCompDirective) {
return autocomplete.AppNameComplete()
},
Run: func(cmd *cobra.Command, args []string) {
appName := args[0]
appEnvPath := path.Join(config.ABRA_DIR, "servers", server, fmt.Sprintf("%s.env", appName))
if _, err := os.Stat(appEnvPath); !os.IsNotExist(err) {
log.Fatal(i18n.G("%s already exists?", appEnvPath))
}
if server == "" {
log.Fatal(i18n.G("unable to determine server of app %s, please pass --server/-s", appName))
}
serverDir := filepath.Join(config.SERVERS_DIR, server)
if _, err := os.Stat(serverDir); os.IsNotExist(err) {
log.Fatal(i18n.G("unknown server %s, run \"abra server add %s\"?", server, server))
}
store := contextPkg.NewDefaultDockerContextStore()
contexts, err := store.Store.List()
if err != nil {
log.Fatal(i18n.G("unable to look up server context for %s: %s", server, err))
}
var contextCreated bool
if server == "default" {
contextCreated = true
}
for _, context := range contexts {
if context.Name == server {
contextCreated = true
}
}
if !contextCreated {
log.Fatal(i18n.G("%s missing context, run \"abra server add %s\"?", server, server))
}
cl, err := client.New(server)
if err != nil {
log.Fatal(err)
}
deployMeta, err := stack.IsDeployed(context.Background(), cl, appPkg.StackName(appName))
if err != nil {
log.Fatal(err)
}
if !deployMeta.IsDeployed {
log.Fatal(i18n.G("%s is not deployed?", appName))
}
filters := filters.NewArgs()
filters.Add("name", fmt.Sprintf("^%s_%s", app.StackName(appName), "app"))
targetContainer, err := containerPkg.GetContainer(context.Background(), cl, filters, internal.NoInput)
if err != nil {
log.Fatal(i18n.G("unable to retrieve container for %s: %s", appName, err))
}
inspectResult, err := cl.ContainerInspect(context.Background(), targetContainer.ID)
if err != nil {
log.Fatal(i18n.G("unable to inspect container for %s: %s", appName, err))
}
deploymentEnv := make(map[string]string)
for _, envVar := range inspectResult.Config.Env {
split := strings.SplitN(envVar, "=", 2)
if len(split) != 2 {
log.Debug(i18n.G("no value attached to %s", envVar))
continue
}
key, val := split[0], split[1]
deploymentEnv[key] = val
}
log.Debug(i18n.G("pulled env values from %s deployment: %s", appName, deploymentEnv))
var (
recipeEnvVar string
recipeKey string
)
if r, ok := deploymentEnv["TYPE"]; ok {
recipeKey = "TYPE"
recipeEnvVar = r
}
if r, ok := deploymentEnv["RECIPE"]; ok {
recipeKey = "RECIPE"
recipeEnvVar = r
}
if recipeEnvVar == "" {
log.Fatal(i18n.G("unable to determine recipe type from %s, env: %v", appName, inspectResult.Config.Env))
}
var recipeName = recipeEnvVar
if strings.Contains(recipeEnvVar, ":") {
split := strings.Split(recipeEnvVar, ":")
recipeName = split[0]
}
recipe := internal.ValidateRecipe(
[]string{recipeName},
cmd.Name(),
)
version := deployMeta.Version
if deployMeta.IsChaos {
version = deployMeta.ChaosVersion
}
if _, err := recipe.EnsureVersion(version); err != nil {
log.Fatal(err)
}
mergedEnv, err := recipe.SampleEnv()
if err != nil {
log.Fatal(err)
}
log.Debug(i18n.G("retrieved env values from .env.sample of %s: %s", recipe.Name, mergedEnv))
for k, v := range deploymentEnv {
mergedEnv[k] = v
}
if !strings.Contains(recipeEnvVar, ":") {
mergedEnv[recipeKey] = fmt.Sprintf("%s:%s", mergedEnv[recipeKey], version)
}
log.Debug(i18n.G("final merged env values for %s are: %s", appName, mergedEnv))
envSample, err := os.ReadFile(recipe.SampleEnvPath)
if err != nil {
log.Fatal(err)
}
err = os.WriteFile(appEnvPath, envSample, 0o664)
if err != nil {
log.Fatal(i18n.G("unable to write new env %s: %s", appEnvPath, err))
}
read, err := os.ReadFile(appEnvPath)
if err != nil {
log.Fatal(i18n.G("unable to read new env %s: %s", appEnvPath, err))
}
sampleEnv, err := recipe.SampleEnv()
if err != nil {
log.Fatal(err)
}
var composeFileUpdated bool
newContents := string(read)
for key, val := range mergedEnv {
if sampleEnv[key] == val {
continue
}
if key == "COMPOSE_FILE" {
composeFileUpdated = true
continue
}
if m, _ := regexp.MatchString(fmt.Sprintf(`#%s=`, key), newContents); m {
log.Debug(i18n.G("uncommenting %s", key))
re := regexp.MustCompile(fmt.Sprintf(`#%s=`, key))
newContents = re.ReplaceAllString(newContents, fmt.Sprintf("%s=", key))
}
if m, _ := regexp.MatchString(fmt.Sprintf(`# %s=`, key), newContents); m {
log.Debug(i18n.G("uncommenting %s", key))
re := regexp.MustCompile(fmt.Sprintf(`# %s=`, key))
newContents = re.ReplaceAllString(newContents, fmt.Sprintf("%s=", key))
}
if m, _ := regexp.MatchString(fmt.Sprintf(`%s=".*"`, key), newContents); m {
log.Debug(i18n.G(`inserting %s="%s" (double quotes)`, key, val))
re := regexp.MustCompile(fmt.Sprintf(`%s=".*"`, key))
newContents = re.ReplaceAllString(newContents, fmt.Sprintf(`%s="%s"`, key, val))
continue
}
if m, _ := regexp.MatchString(fmt.Sprintf(`%s='.*'`, key), newContents); m {
log.Debug(i18n.G(`inserting %s='%s' (single quotes)`, key, val))
re := regexp.MustCompile(fmt.Sprintf(`%s='.*'`, key))
newContents = re.ReplaceAllString(newContents, fmt.Sprintf(`%s='%s'`, key, val))
continue
}
if m, _ := regexp.MatchString(fmt.Sprintf("%s=.*", key), newContents); m {
log.Debug(i18n.G("inserting %s=%s (no quotes)", key, val))
re := regexp.MustCompile(fmt.Sprintf("%s=.*", key))
newContents = re.ReplaceAllString(newContents, fmt.Sprintf("%s=%s", key, val))
}
}
err = os.WriteFile(appEnvPath, []byte(newContents), 0)
if err != nil {
log.Fatal(i18n.G("unable to write new env %s: %s", appEnvPath, err))
}
log.Info(i18n.G("%s successfully created", appEnvPath))
if composeFileUpdated {
log.Warn(i18n.G("manual update required: COMPOSE_FILE=\"%s\"", mergedEnv["COMPOSE_FILE"]))
}
},
}
var AppEnvCommand = &cobra.Command{
// translators: `app env` command group
Use: i18n.G("env [cmd] [args] [flags]"),
Aliases: strings.Split(appEnvAliases, ","),
// translators: Short description for `app env` command group
Short: i18n.G("Manage app environment values"),
}
var (
server string
)
func init() {
AppEnvPullCommand.Flags().BoolVarP(
&internal.Force,
i18n.G("force"),
i18n.G("f"),
false,
i18n.G("perform action without further prompt"),
)
AppEnvPullCommand.Flags().StringVarP(
&server,
i18n.G("server"),
i18n.G("s"),
"",
i18n.G("server associated with deployed app"),
)
AppEnvPullCommand.RegisterFlagCompletionFunc(
i18n.G("server"),
func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
return autocomplete.ServerNameComplete()
},
)
}

View File

@ -2,7 +2,6 @@ package app
import ( import (
"errors" "errors"
"fmt"
"strings" "strings"
appPkg "coopcloud.tech/abra/pkg/app" appPkg "coopcloud.tech/abra/pkg/app"
@ -178,9 +177,7 @@ beforehand. See "abra app backup" for more.`),
log.Fatal(err) log.Fatal(err)
} }
newRecipeWithDowngradeVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, chosenDowngrade) appPkg.ExposeAllEnv(stackName, compose, app.Env)
appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithDowngradeVersion)
appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name)
appPkg.SetChaosLabel(compose, stackName, internal.Chaos) appPkg.SetChaosLabel(compose, stackName, internal.Chaos)
if internal.Chaos { if internal.Chaos {

View File

@ -28,7 +28,6 @@ var AppUndeployCommand = &cobra.Command{
Use: i18n.G("undeploy <domain> [flags]"), Use: i18n.G("undeploy <domain> [flags]"),
// translators: Short description for `app undeploy` command // translators: Short description for `app undeploy` command
Aliases: strings.Split(appUndeployAliases, ","), Aliases: strings.Split(appUndeployAliases, ","),
Short: i18n.G("Undeploy a deployed app"),
Long: i18n.G(`This does not destroy any application data. Long: i18n.G(`This does not destroy any application data.
However, you should remain vigilant, as your swarm installation will consider However, you should remain vigilant, as your swarm installation will consider

View File

@ -190,9 +190,7 @@ beforehand. See "abra app backup" for more.`),
log.Fatal(err) log.Fatal(err)
} }
newRecipeWithUpgradeVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, chosenUpgrade) appPkg.ExposeAllEnv(stackName, compose, app.Env)
appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithUpgradeVersion)
appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name)
appPkg.SetChaosLabel(compose, stackName, internal.Chaos) appPkg.SetChaosLabel(compose, stackName, internal.Chaos)
if internal.Chaos { if internal.Chaos {

View File

@ -283,11 +283,6 @@ Config:
app.AppBackupSnapshotsCommand, app.AppBackupSnapshotsCommand,
) )
app.AppEnvCommand.AddCommand(
app.AppEnvListCommand,
app.AppEnvPullCommand,
)
app.AppCommand.AddCommand( app.AppCommand.AddCommand(
app.AppBackupCommand, app.AppBackupCommand,
app.AppCheckCommand, app.AppCheckCommand,

View File

@ -502,11 +502,7 @@ func GetAppComposeConfig(recipe string, opts stack.Deploy, appEnv envfile.AppEnv
} }
// ExposeAllEnv exposes all env variables to the app container // ExposeAllEnv exposes all env variables to the app container
func ExposeAllEnv( func ExposeAllEnv(stackName string, compose *composetypes.Config, appEnv envfile.AppEnv) {
stackName string,
compose *composetypes.Config,
appEnv envfile.AppEnv,
toDeployVersion string) {
for _, service := range compose.Services { for _, service := range compose.Services {
if service.Name == "app" { if service.Name == "app" {
log.Debug(i18n.G("adding env vars to %s service config", stackName)) log.Debug(i18n.G("adding env vars to %s service config", stackName))
@ -514,11 +510,6 @@ func ExposeAllEnv(
_, exists := service.Environment[k] _, exists := service.Environment[k]
if !exists { if !exists {
value := v value := v
if k == "TYPE" || k == "RECIPE" {
// NOTE(d1): don't use the wrong version from the app env
// since we are deploying a new version
value = toDeployVersion
}
service.Environment[k] = &value service.Environment[k] = &value
log.Debug(i18n.G("%s: %s: %s", stackName, k, value)) log.Debug(i18n.G("%s: %s: %s", stackName, k, value))
} }

View File

@ -44,21 +44,11 @@ func New(serverName string, opts ...Opt) (*client.Client, error) {
ctx, err := GetContext(serverName) ctx, err := GetContext(serverName)
if err != nil { if err != nil {
serverDir := path.Join(config.SERVERS_DIR, serverName) serverDir := path.Join(config.SERVERS_DIR, serverName)
if _, err := os.Stat(serverDir); err != nil { if _, err := os.Stat(serverDir); err == nil {
return nil, errors.New(i18n.G("server missing, run \"abra server add %s\"?", serverName))
}
// When the docker context does not exist but the server folder is
// there, let's create a new docker context.
err = CreateContext(serverName)
if err != nil {
return nil, errors.New(i18n.G("server missing context, context creation failed: %s", err))
}
ctx, err = GetContext(serverName)
if err != nil {
return nil, errors.New(i18n.G("server missing context, run \"abra server add %s\"?", serverName)) return nil, errors.New(i18n.G("server missing context, run \"abra server add %s\"?", serverName))
} }
return nil, errors.New(i18n.G("unknown server, run \"abra server add %s\"?", serverName))
} }
ctxEndpoint, err := contextPkg.GetContextEndpoint(ctx) ctxEndpoint, err := contextPkg.GetContextEndpoint(ctx)

View File

@ -7,13 +7,13 @@
msgid "" msgid ""
msgstr "Project-Id-Version: \n" msgstr "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n" "Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2025-11-02 11:41+0100\n" "POT-Creation-Date: 2025-10-31 19:25+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ./cli/app/cp.go:38 #: ./cli/app/cp.go:38
@ -92,14 +92,6 @@ msgid " # pass <cmd> args/flags without \"--\"\n"
" abra app cmd 1312.net my_cmd --local" " abra app cmd 1312.net my_cmd --local"
msgstr "" msgstr ""
#: ./cli/app/env.go:85
msgid " # pull existing .env file and overwrite local values\n"
" abra app env pull 1312.net --force\n"
"\n"
" # pull lost app .env file\n"
" abra app env pull my.gitea.net --server 1312.net"
msgstr ""
#: ./cli/app/restart.go:36 #: ./cli/app/restart.go:36
msgid " # restart a single app service\n" msgid " # restart a single app service\n"
" abra app restart 1312.net app\n" " abra app restart 1312.net app\n"
@ -133,8 +125,8 @@ msgid " # standard deployment\n"
" abra app deploy 1312.net 886db76d" " abra app deploy 1312.net 886db76d"
msgstr "" msgstr ""
#: ./cli/app/env.go:47 #: ./cli/app/env.go:25
msgid " abra app env list 1312.net" msgid " abra app env 1312.net"
msgstr "" msgstr ""
#: ./cli/app/remove.go:45 #: ./cli/app/remove.go:45
@ -157,7 +149,7 @@ msgstr ""
msgid " abra upgrade --rc" msgid " abra upgrade --rc"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:49 #: ./cli/app/rollback.go:48
msgid " # standard rollback\n" msgid " # standard rollback\n"
" abra app rollback 1312.net\n" " abra app rollback 1312.net\n"
"\n" "\n"
@ -209,7 +201,7 @@ msgstr ""
msgid "%s already exists" msgid "%s already exists"
msgstr "" msgstr ""
#: ./cli/app/env.go:102 ./pkg/app/app.go:380 #: ./pkg/app/app.go:380
#, c-format #, c-format
msgid "%s already exists?" msgid "%s already exists?"
msgstr "" msgstr ""
@ -339,17 +331,17 @@ msgstr ""
msgid "%s is missing the TYPE env var?" msgid "%s is missing the TYPE env var?"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:308 ./cli/app/rollback.go:312 #: ./cli/app/rollback.go:305 ./cli/app/rollback.go:309
#, c-format #, c-format
msgid "%s is not a downgrade for %s?" msgid "%s is not a downgrade for %s?"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:428 ./cli/app/upgrade.go:432 #: ./cli/app/upgrade.go:426 ./cli/app/upgrade.go:430
#, c-format #, c-format
msgid "%s is not an upgrade for %s?" msgid "%s is not an upgrade for %s?"
msgstr "" msgstr ""
#: ./cli/app/env.go:146 ./cli/app/logs.go:65 ./cli/app/ps.go:62 ./cli/app/restart.go:100 ./cli/app/services.go:55 ./cli/app/undeploy.go:66 ./cli/app/upgrade.go:449 #: ./cli/app/logs.go:65 ./cli/app/ps.go:62 ./cli/app/restart.go:100 ./cli/app/services.go:55 ./cli/app/undeploy.go:65 ./cli/app/upgrade.go:447
#, c-format #, c-format
msgid "%s is not deployed?" msgid "%s is not deployed?"
msgstr "" msgstr ""
@ -364,12 +356,7 @@ msgstr ""
msgid "%s is still deployed. Run \"abra app undeploy %s\"" msgid "%s is still deployed. Run \"abra app undeploy %s\""
msgstr "" msgstr ""
#: ./cli/app/env.go:132 #: ./cli/app/deploy.go:182 ./cli/app/upgrade.go:208
#, c-format
msgid "%s missing context, run \"abra server add %s\"?"
msgstr ""
#: ./cli/app/deploy.go:184 ./cli/app/upgrade.go:210
#, c-format #, c-format
msgid "%s missing from %s.env" msgid "%s missing from %s.env"
msgstr "" msgstr ""
@ -434,11 +421,6 @@ msgstr ""
msgid "%s successfully added" msgid "%s successfully added"
msgstr "" msgstr ""
#: ./cli/app/env.go:301
#, c-format
msgid "%s successfully created"
msgstr ""
#: ./cli/app/secret.go:254 #: ./cli/app/secret.go:254
#, c-format #, c-format
msgid "%s successfully stored on server" msgid "%s successfully stored on server"
@ -484,7 +466,7 @@ msgstr ""
msgid "%s: %s → %s" msgid "%s: %s → %s"
msgstr "" msgstr ""
#: ./pkg/app/app.go:523 #: ./pkg/app/app.go:514
#, c-format #, c-format
msgid "%s: %s: %s" msgid "%s: %s: %s"
msgstr "" msgstr ""
@ -549,12 +531,12 @@ msgstr ""
msgid "%s: waiting %d seconds before next retry" msgid "%s: waiting %d seconds before next retry"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:423 #: ./cli/app/upgrade.go:421
#, c-format #, c-format
msgid "'%s' is not a known version" msgid "'%s' is not a known version"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:303 ./cli/app/upgrade.go:418 #: ./cli/app/rollback.go:300 ./cli/app/upgrade.go:416
#, c-format #, c-format
msgid "'%s' is not a known version for %s" msgid "'%s' is not a known version for %s"
msgstr "" msgstr ""
@ -621,7 +603,7 @@ msgstr ""
msgid "Both local recipe and live deployment labels are shown." msgid "Both local recipe and live deployment labels are shown."
msgstr "" msgstr ""
#: ./cli/app/backup.go:319 ./cli/app/backup.go:335 ./cli/app/check.go:95 ./cli/app/cmd.go:285 ./cli/app/cp.go:385 ./cli/app/deploy.go:395 ./cli/app/labels.go:143 ./cli/app/new.go:397 ./cli/app/ps.go:213 ./cli/app/restart.go:162 ./cli/app/restore.go:138 ./cli/app/secret.go:569 ./cli/app/secret.go:609 ./cli/app/secret.go:633 ./cli/app/secret.go:641 ./cli/catalogue/catalogue.go:318 ./cli/recipe/lint.go:137 #: ./cli/app/backup.go:319 ./cli/app/backup.go:335 ./cli/app/check.go:95 ./cli/app/cmd.go:285 ./cli/app/cp.go:385 ./cli/app/deploy.go:393 ./cli/app/labels.go:143 ./cli/app/new.go:397 ./cli/app/ps.go:213 ./cli/app/restart.go:162 ./cli/app/restore.go:138 ./cli/app/secret.go:569 ./cli/app/secret.go:609 ./cli/app/secret.go:633 ./cli/app/secret.go:641 ./cli/catalogue/catalogue.go:318 ./cli/recipe/lint.go:137
msgid "C" msgid "C"
msgstr "" msgstr ""
@ -762,7 +744,7 @@ msgid "Creates a new app from a default recipe.\n"
"on your $PATH." "on your $PATH."
msgstr "" msgstr ""
#: ./cli/app/deploy.go:411 ./cli/app/new.go:373 ./cli/app/rollback.go:360 ./cli/app/upgrade.go:469 #: ./cli/app/deploy.go:409 ./cli/app/new.go:373 ./cli/app/rollback.go:357 ./cli/app/upgrade.go:467
msgid "D" msgid "D"
msgstr "" msgstr ""
@ -812,7 +794,7 @@ msgid "Downloads a backup.tar.gz to the current working directory.\n"
"\"backupbot.backup.path\" labels." "\"backupbot.backup.path\" labels."
msgstr "" msgstr ""
#: ./cli/app/env.go:70 #: ./cli/app/env.go:48
msgid "ENV OVERVIEW" msgid "ENV OVERVIEW"
msgstr "" msgstr ""
@ -957,11 +939,6 @@ msgstr ""
msgid "Lint a recipe" msgid "Lint a recipe"
msgstr "" msgstr ""
#. translators: Short description for `app env list` command
#: ./cli/app/env.go:46
msgid "List all app environment values"
msgstr ""
#. translators: Short description for `app cmd list` command #. translators: Short description for `app cmd list` command
#: ./cli/app/cmd.go:210 #: ./cli/app/cmd.go:210
msgid "List all available commands" msgid "List all available commands"
@ -1016,11 +993,6 @@ msgstr ""
msgid "Manage app backups" msgid "Manage app backups"
msgstr "" msgstr ""
#. translators: Short description for `app env` command group
#: ./cli/app/env.go:314
msgid "Manage app environment values"
msgstr ""
#. translators: Short description for `app secret` command group #. translators: Short description for `app secret` command group
#: ./cli/app/secret.go:537 #: ./cli/app/secret.go:537
msgid "Manage app secrets" msgid "Manage app secrets"
@ -1127,18 +1099,6 @@ msgid "Prunes unused containers, networks, and dangling images.\n"
"app. This can result in unwanted data loss if not used carefully." "app. This can result in unwanted data loss if not used carefully."
msgstr "" msgstr ""
#. translators: Short description for `app env pull` command
#: ./cli/app/env.go:80
msgid "Pull app environment values from a deployed app"
msgstr ""
#: ./cli/app/env.go:81
msgid "Pull app environment values from a deploymed app.\n"
"\n"
"A convenient command for when you've lost your app environment file or want to\n"
"synchronize your local app environment values with what is deployed live."
msgstr ""
#: ./pkg/lint/recipe.go:110 #: ./pkg/lint/recipe.go:110
msgid "README.md metadata filled in" msgid "README.md metadata filled in"
msgstr "" msgstr ""
@ -1232,7 +1192,7 @@ msgid "Restore a snapshot"
msgstr "" msgstr ""
#. translators: Short description for `app rollback` command #. translators: Short description for `app rollback` command
#: ./cli/app/rollback.go:34 #: ./cli/app/rollback.go:33
msgid "Roll an app back to a previous version" msgid "Roll an app back to a previous version"
msgstr "" msgstr ""
@ -1308,6 +1268,11 @@ msgstr ""
msgid "Select recipe" msgid "Select recipe"
msgstr "" msgstr ""
#. translators: Short description for `app env` command
#: ./cli/app/env.go:24
msgid "Show app .env values"
msgstr ""
#. translators: Short description for `app labels` command #. translators: Short description for `app labels` command
#: ./cli/app/labels.go:32 #: ./cli/app/labels.go:32
msgid "Show deployment labels" msgid "Show deployment labels"
@ -1405,7 +1370,7 @@ msgid "This command restarts services within a deployed app.\n"
"Pass \"--all-services/-a\" to restart all services." "Pass \"--all-services/-a\" to restart all services."
msgstr "" msgstr ""
#: ./cli/app/rollback.go:35 #: ./cli/app/rollback.go:34
msgid "This command rolls an app back to a previous version.\n" msgid "This command rolls an app back to a previous version.\n"
"\n" "\n"
"Unlike \"abra app deploy\", chaos operations are not supported here. Only recipe\n" "Unlike \"abra app deploy\", chaos operations are not supported here. Only recipe\n"
@ -1422,7 +1387,7 @@ msgid "This command rolls an app back to a previous version.\n"
"beforehand. See \"abra app backup\" for more." "beforehand. See \"abra app backup\" for more."
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:32 #: ./cli/app/undeploy.go:31
msgid "This does not destroy any application data.\n" msgid "This does not destroy any application data.\n"
"\n" "\n"
"However, you should remain vigilant, as your swarm installation will consider\n" "However, you should remain vigilant, as your swarm installation will consider\n"
@ -1469,7 +1434,7 @@ msgid "To load completions:\n"
" # and source this file from your PowerShell profile." " # and source this file from your PowerShell profile."
msgstr "" msgstr ""
#: ./cli/app/deploy.go:435 ./cli/app/rollback.go:376 ./cli/app/upgrade.go:493 #: ./cli/app/deploy.go:433 ./cli/app/rollback.go:373 ./cli/app/upgrade.go:491
msgid "U" msgid "U"
msgstr "" msgstr ""
@ -1485,10 +1450,6 @@ msgstr ""
msgid "UPGRADE" msgid "UPGRADE"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:31
msgid "Undeploy a deployed app"
msgstr ""
#: ./cli/recipe/upgrade.go:50 #: ./cli/recipe/upgrade.go:50
msgid "Upgrade a given <recipe> configuration.\n" msgid "Upgrade a given <recipe> configuration.\n"
"\n" "\n"
@ -1760,7 +1721,7 @@ msgstr ""
msgid "add release note? (leave empty to skip)" msgid "add release note? (leave empty to skip)"
msgstr "" msgstr ""
#: ./pkg/app/app.go:512 #: ./pkg/app/app.go:508
#, c-format #, c-format
msgid "adding env vars to %s service config" msgid "adding env vars to %s service config"
msgstr "" msgstr ""
@ -1844,7 +1805,7 @@ msgstr ""
msgid "attempting to run %s" msgid "attempting to run %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:272 ./cli/app/upgrade.go:295 #: ./cli/app/deploy.go:270 ./cli/app/upgrade.go:293
#, c-format #, c-format
msgid "attempting to run post deploy commands, saw: %s" msgid "attempting to run post deploy commands, saw: %s"
msgstr "" msgstr ""
@ -1869,7 +1830,7 @@ msgstr ""
msgid "autocomplete [bash|zsh|fish|powershell]" msgid "autocomplete [bash|zsh|fish|powershell]"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:65 ./cli/app/logs.go:39 ./cli/app/rollback.go:65 ./cli/app/secret.go:49 ./cli/app/secret.go:191 ./cli/app/secret.go:360 ./cli/app/upgrade.go:63 ./pkg/autocomplete/autocomplete.go:18 ./pkg/autocomplete/autocomplete.go:33 ./pkg/autocomplete/autocomplete.go:44 ./pkg/autocomplete/autocomplete.go:50 ./pkg/autocomplete/autocomplete.go:70 ./pkg/autocomplete/autocomplete.go:88 ./pkg/autocomplete/autocomplete.go:104 ./pkg/autocomplete/autocomplete.go:110 ./pkg/autocomplete/autocomplete.go:125 #: ./cli/app/deploy.go:65 ./cli/app/logs.go:39 ./cli/app/rollback.go:64 ./cli/app/secret.go:49 ./cli/app/secret.go:191 ./cli/app/secret.go:360 ./cli/app/upgrade.go:63 ./pkg/autocomplete/autocomplete.go:18 ./pkg/autocomplete/autocomplete.go:33 ./pkg/autocomplete/autocomplete.go:44 ./pkg/autocomplete/autocomplete.go:50 ./pkg/autocomplete/autocomplete.go:70 ./pkg/autocomplete/autocomplete.go:88 ./pkg/autocomplete/autocomplete.go:104 ./pkg/autocomplete/autocomplete.go:110 ./pkg/autocomplete/autocomplete.go:125
#, c-format #, c-format
msgid "autocomplete failed: %s" msgid "autocomplete failed: %s"
msgstr "" msgstr ""
@ -1924,7 +1885,7 @@ msgstr ""
#. no spaces in between #. no spaces in between
#. translators: `abra app cp` aliases. use a comma separated list of aliases with #. translators: `abra app cp` aliases. use a comma separated list of aliases with
#. no spaces in between #. no spaces in between
#: ./cli/app/backup.go:148 ./cli/app/cp.go:30 ./cli/app/deploy.go:419 ./cli/app/rollback.go:368 ./cli/app/upgrade.go:477 #: ./cli/app/backup.go:148 ./cli/app/cp.go:30 ./cli/app/deploy.go:417 ./cli/app/rollback.go:365 ./cli/app/upgrade.go:475
msgid "c" msgid "c"
msgstr "" msgstr ""
@ -1980,7 +1941,7 @@ msgstr ""
msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?" msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:369 #: ./cli/app/deploy.go:367
#, c-format #, c-format
msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?\n" msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?\n"
" to return to a regular release, specify a release tag, commit SHA or use \"--latest\"" " to return to a regular release, specify a release tag, commit SHA or use \"--latest\""
@ -1999,7 +1960,7 @@ msgstr ""
msgid "cannot use '[secret] [version]' and '--all' together" msgid "cannot use '[secret] [version]' and '--all' together"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:311 #: ./cli/app/deploy.go:309
msgid "cannot use --chaos and --latest together" msgid "cannot use --chaos and --latest together"
msgstr "" msgstr ""
@ -2023,11 +1984,11 @@ msgstr ""
msgid "cannot use [service] and --all-services/-a together" msgid "cannot use [service] and --all-services/-a together"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:303 ./cli/app/new.go:76 #: ./cli/app/deploy.go:301 ./cli/app/new.go:76
msgid "cannot use [version] and --chaos together" msgid "cannot use [version] and --chaos together"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:307 #: ./cli/app/deploy.go:305
msgid "cannot use [version] and --latest together" msgid "cannot use [version] and --latest together"
msgstr "" msgstr ""
@ -2059,7 +2020,7 @@ msgstr ""
msgid "cfg" msgid "cfg"
msgstr "" msgstr ""
#: ./cli/app/backup.go:318 ./cli/app/backup.go:334 ./cli/app/check.go:94 ./cli/app/cmd.go:284 ./cli/app/cp.go:384 ./cli/app/deploy.go:394 ./cli/app/labels.go:142 ./cli/app/new.go:396 ./cli/app/ps.go:212 ./cli/app/restart.go:161 ./cli/app/restore.go:137 ./cli/app/secret.go:568 ./cli/app/secret.go:608 ./cli/app/secret.go:632 ./cli/app/secret.go:640 ./cli/catalogue/catalogue.go:317 ./cli/recipe/lint.go:136 #: ./cli/app/backup.go:318 ./cli/app/backup.go:334 ./cli/app/check.go:94 ./cli/app/cmd.go:284 ./cli/app/cp.go:384 ./cli/app/deploy.go:392 ./cli/app/labels.go:142 ./cli/app/new.go:396 ./cli/app/ps.go:212 ./cli/app/restart.go:161 ./cli/app/restore.go:137 ./cli/app/secret.go:568 ./cli/app/secret.go:608 ./cli/app/secret.go:632 ./cli/app/secret.go:640 ./cli/catalogue/catalogue.go:317 ./cli/recipe/lint.go:136
msgid "chaos" msgid "chaos"
msgstr "" msgstr ""
@ -2068,7 +2029,7 @@ msgstr ""
msgid "check <domain> [flags]" msgid "check <domain> [flags]"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:94 ./cli/app/undeploy.go:58 ./cli/app/upgrade.go:441 #: ./cli/app/deploy.go:94 ./cli/app/undeploy.go:57 ./cli/app/upgrade.go:439
#, c-format #, c-format
msgid "checking whether %s is already deployed" msgid "checking whether %s is already deployed"
msgstr "" msgstr ""
@ -2089,7 +2050,7 @@ msgstr ""
msgid "choosing %s as new version for %s" msgid "choosing %s as new version for %s"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:152 #: ./cli/app/rollback.go:151
#, c-format #, c-format
msgid "choosing %s as version to rollback" msgid "choosing %s as version to rollback"
msgstr "" msgstr ""
@ -2219,7 +2180,7 @@ msgstr ""
msgid "considering %s config(s) for tag update" msgid "considering %s config(s) for tag update"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:141 ./cli/server/prune.go:53 #: ./cli/app/undeploy.go:140 ./cli/server/prune.go:53
#, c-format #, c-format
msgid "containers pruned: %d; space reclaimed: %s" msgid "containers pruned: %d; space reclaimed: %s"
msgstr "" msgstr ""
@ -2350,7 +2311,7 @@ msgstr ""
msgid "critical errors present in %s config" msgid "critical errors present in %s config"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:298 #: ./cli/app/rollback.go:295
#, c-format #, c-format
msgid "current deployment '%s' is not a known version for %s" msgid "current deployment '%s' is not a known version for %s"
msgstr "" msgstr ""
@ -2402,7 +2363,7 @@ msgstr ""
msgid "deploy labels stanza present" msgid "deploy labels stanza present"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:429 #: ./cli/app/deploy.go:427
msgid "deploy latest recipe version" msgid "deploy latest recipe version"
msgstr "" msgstr ""
@ -2504,11 +2465,11 @@ msgstr ""
msgid "dirty: %v, " msgid "dirty: %v, "
msgstr "" msgstr ""
#: ./cli/app/deploy.go:421 ./cli/app/rollback.go:370 ./cli/app/upgrade.go:479 #: ./cli/app/deploy.go:419 ./cli/app/rollback.go:367 ./cli/app/upgrade.go:477
msgid "disable converge logic checks" msgid "disable converge logic checks"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:413 ./cli/app/rollback.go:362 ./cli/app/upgrade.go:471 #: ./cli/app/deploy.go:411 ./cli/app/rollback.go:359 ./cli/app/upgrade.go:469
msgid "disable public DNS checks" msgid "disable public DNS checks"
msgstr "" msgstr ""
@ -2606,9 +2567,9 @@ msgstr ""
msgid "duplicate secret target for %s not allowed" msgid "duplicate secret target for %s not allowed"
msgstr "" msgstr ""
#. translators: `abra app env` aliases. use a comma separated list of aliases #. translators: `abra app env` aliases. use a comma separated list of aliases with
#. with no spaces in between #. no spaces in between
#: ./cli/app/env.go:31 ./cli/recipe/lint.go:145 ./cli/recipe/new.go:131 #: ./cli/app/env.go:17 ./cli/recipe/lint.go:145 ./cli/recipe/new.go:131
msgid "e" msgid "e"
msgstr "" msgstr ""
@ -2647,9 +2608,9 @@ msgstr ""
msgid "enter / return to confirm, choose 'skip' to not upgrade this tag, vim mode is enabled" msgid "enter / return to confirm, choose 'skip' to not upgrade this tag, vim mode is enabled"
msgstr "" msgstr ""
#. translators: `app env` command group #. translators: `app env` command
#: ./cli/app/env.go:311 #: ./cli/app/env.go:21
msgid "env [cmd] [args] [flags]" msgid "env <domain> [flags]"
msgstr "" msgstr ""
#: ./pkg/app/app.go:248 #: ./pkg/app/app.go:248
@ -2726,7 +2687,7 @@ msgstr ""
#. translators: `abra recipe fetch` aliases. use a comma separated list of aliases #. translators: `abra recipe fetch` aliases. use a comma separated list of aliases
#. with no spaces in between #. with no spaces in between
#: ./cli/app/deploy.go:403 ./cli/app/env.go:325 ./cli/app/remove.go:163 ./cli/app/rollback.go:352 ./cli/app/secret.go:593 ./cli/app/upgrade.go:461 ./cli/app/volume.go:217 ./cli/recipe/fetch.go:20 ./cli/recipe/fetch.go:138 #: ./cli/app/deploy.go:401 ./cli/app/remove.go:163 ./cli/app/rollback.go:349 ./cli/app/secret.go:593 ./cli/app/upgrade.go:459 ./cli/app/volume.go:217 ./cli/recipe/fetch.go:20 ./cli/recipe/fetch.go:138
msgid "f" msgid "f"
msgstr "" msgstr ""
@ -2952,12 +2913,7 @@ msgstr ""
msgid "filter by recipe" msgid "filter by recipe"
msgstr "" msgstr ""
#: ./cli/app/env.go:229 #: ./cli/app/deploy.go:400 ./cli/app/remove.go:162 ./cli/app/rollback.go:348 ./cli/app/upgrade.go:458 ./cli/app/volume.go:216 ./cli/recipe/fetch.go:137
#, c-format
msgid "final merged env values for %s are: %s"
msgstr ""
#: ./cli/app/deploy.go:402 ./cli/app/env.go:324 ./cli/app/remove.go:162 ./cli/app/rollback.go:351 ./cli/app/upgrade.go:460 ./cli/app/volume.go:216 ./cli/recipe/fetch.go:137
msgid "force" msgid "force"
msgstr "" msgstr ""
@ -3171,11 +3127,11 @@ msgstr ""
msgid "id: %s, " msgid "id: %s, "
msgstr "" msgstr ""
#: ./cli/app/backup.go:321 ./cli/app/backup.go:337 ./cli/app/check.go:97 ./cli/app/cmd.go:287 ./cli/app/cp.go:387 ./cli/app/deploy.go:397 ./cli/app/labels.go:145 ./cli/app/new.go:399 ./cli/app/ps.go:215 ./cli/app/restart.go:164 ./cli/app/restore.go:140 ./cli/app/secret.go:571 ./cli/app/secret.go:611 ./cli/app/secret.go:635 ./cli/app/secret.go:643 ./cli/catalogue/catalogue.go:320 ./cli/recipe/lint.go:139 #: ./cli/app/backup.go:321 ./cli/app/backup.go:337 ./cli/app/check.go:97 ./cli/app/cmd.go:287 ./cli/app/cp.go:387 ./cli/app/deploy.go:395 ./cli/app/labels.go:145 ./cli/app/new.go:399 ./cli/app/ps.go:215 ./cli/app/restart.go:164 ./cli/app/restore.go:140 ./cli/app/secret.go:571 ./cli/app/secret.go:611 ./cli/app/secret.go:635 ./cli/app/secret.go:643 ./cli/catalogue/catalogue.go:320 ./cli/recipe/lint.go:139
msgid "ignore uncommitted recipes changes" msgid "ignore uncommitted recipes changes"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:156 ./cli/server/prune.go:74 #: ./cli/app/undeploy.go:155 ./cli/server/prune.go:74
#, c-format #, c-format
msgid "images pruned: %d; space reclaimed: %s" msgid "images pruned: %d; space reclaimed: %s"
msgstr "" msgstr ""
@ -3295,21 +3251,6 @@ msgstr ""
msgid "insert <domain> <secret> <version> [<data>] [flags]" msgid "insert <domain> <secret> <version> [<data>] [flags]"
msgstr "" msgstr ""
#: ./cli/app/env.go:290
#, c-format
msgid "inserting %s=%s (no quotes)"
msgstr ""
#: ./cli/app/env.go:283
#, c-format
msgid "inserting %s='%s' (single quotes)"
msgstr ""
#: ./cli/app/env.go:276
#, c-format
msgid "inserting %s=\"%s\" (double quotes)"
msgstr ""
#: ./cli/upgrade.go:62 #: ./cli/upgrade.go:62
msgid "install release candidate (may contain bugs)" msgid "install release candidate (may contain bugs)"
msgstr "" msgstr ""
@ -3369,22 +3310,16 @@ msgstr ""
#. no spaces in between #. no spaces in between
#. translators: `abra recipe lint` aliases. use a comma separated list of #. translators: `abra recipe lint` aliases. use a comma separated list of
#. aliases with no spaces in between #. aliases with no spaces in between
#: ./cli/app/cmd.go:261 ./cli/app/deploy.go:427 ./cli/app/logs.go:20 ./cli/recipe/lint.go:17 ./cli/server/add.go:207 #: ./cli/app/cmd.go:261 ./cli/app/deploy.go:425 ./cli/app/logs.go:20 ./cli/recipe/lint.go:17 ./cli/server/add.go:207
msgid "l" msgid "l"
msgstr "" msgstr ""
#. translators: `abra app env list` aliases. use a comma separated list of
#. aliases with no spaces in between
#: ./cli/app/env.go:35
msgid "l,ls"
msgstr ""
#. translators: `app labels` command #. translators: `app labels` command
#: ./cli/app/labels.go:29 #: ./cli/app/labels.go:29
msgid "labels <domain> [flags]" msgid "labels <domain> [flags]"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:426 ./cli/app/list.go:182 #: ./cli/app/deploy.go:424 ./cli/app/list.go:182
msgid "latest" msgid "latest"
msgstr "" msgstr ""
@ -3426,9 +3361,8 @@ msgstr ""
#. translators: `app backup list` command #. translators: `app backup list` command
#. translators: `app cmd list` command #. translators: `app cmd list` command
#. translators: `app env list` command
#. translators: `app volume list` command #. translators: `app volume list` command
#: ./cli/app/backup.go:21 ./cli/app/cmd.go:207 ./cli/app/env.go:43 ./cli/app/volume.go:25 #: ./cli/app/backup.go:21 ./cli/app/cmd.go:207 ./cli/app/volume.go:25
msgid "list <domain> [flags]" msgid "list <domain> [flags]"
msgstr "" msgstr ""
@ -3540,11 +3474,6 @@ msgstr ""
msgid "man [flags]" msgid "man [flags]"
msgstr "" msgstr ""
#: ./cli/app/env.go:304
#, c-format
msgid "manual update required: COMPOSE_FILE=\"%s\""
msgstr ""
#: ./cli/app/move.go:204 #: ./cli/app/move.go:204
#, c-format #, c-format
msgid "migrating app config from %s to %s" msgid "migrating app config from %s to %s"
@ -3624,7 +3553,7 @@ msgstr ""
msgid "network %q is declared as external, but it is not in the right scope: %q instead of \"swarm\"" msgid "network %q is declared as external, but it is not in the right scope: %q instead of \"swarm\""
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:148 ./cli/server/prune.go:60 #: ./cli/app/undeploy.go:147 ./cli/server/prune.go:60
#, c-format #, c-format
msgid "networks pruned: %d" msgid "networks pruned: %d"
msgstr "" msgstr ""
@ -3692,7 +3621,7 @@ msgstr ""
msgid "no app provided" msgid "no app provided"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:127 #: ./cli/app/rollback.go:126
msgid "no available downgrades" msgid "no available downgrades"
msgstr "" msgstr ""
@ -3815,11 +3744,6 @@ msgstr ""
msgid "no unstable tags" msgid "no unstable tags"
msgstr "" msgstr ""
#: ./cli/app/env.go:165
#, c-format
msgid "no value attached to %s"
msgstr ""
#: ./cli/internal/recipe.go:72 ./cli/internal/recipe.go:87 #: ./cli/internal/recipe.go:72 ./cli/internal/recipe.go:87
msgid "no version bump type specififed?" msgid "no version bump type specififed?"
msgstr "" msgstr ""
@ -3842,11 +3766,11 @@ msgstr ""
msgid "no volumes to remove" msgid "no volumes to remove"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:418 ./cli/app/rollback.go:367 ./cli/app/upgrade.go:476 #: ./cli/app/deploy.go:416 ./cli/app/rollback.go:364 ./cli/app/upgrade.go:474
msgid "no-converge-checks" msgid "no-converge-checks"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:410 ./cli/app/rollback.go:359 ./cli/app/upgrade.go:468 #: ./cli/app/deploy.go:408 ./cli/app/rollback.go:356 ./cli/app/upgrade.go:466
msgid "no-domain-checks" msgid "no-domain-checks"
msgstr "" msgstr ""
@ -3902,7 +3826,7 @@ msgstr ""
msgid "only show errors" msgid "only show errors"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:487 #: ./cli/app/upgrade.go:485
msgid "only show release notes" msgid "only show release notes"
msgstr "" msgstr ""
@ -3914,7 +3838,7 @@ msgstr ""
#. with no spaces in between #. with no spaces in between
#. translators: `abra server prune` aliases. use a comma separated list of #. translators: `abra server prune` aliases. use a comma separated list of
#. aliases with no spaces in between #. aliases with no spaces in between
#: ./cli/app/backup.go:295 ./cli/app/new.go:381 ./cli/app/ps.go:29 ./cli/app/secret.go:561 ./cli/app/secret.go:585 ./cli/app/secret.go:625 ./cli/app/undeploy.go:169 ./cli/catalogue/catalogue.go:294 ./cli/recipe/list.go:112 ./cli/recipe/release.go:681 ./cli/server/prune.go:18 #: ./cli/app/backup.go:295 ./cli/app/new.go:381 ./cli/app/ps.go:29 ./cli/app/secret.go:561 ./cli/app/secret.go:585 ./cli/app/secret.go:625 ./cli/app/undeploy.go:168 ./cli/catalogue/catalogue.go:294 ./cli/recipe/list.go:112 ./cli/recipe/release.go:681 ./cli/server/prune.go:18
msgid "p" msgid "p"
msgstr "" msgstr ""
@ -3933,22 +3857,22 @@ msgstr ""
msgid "parsed following command arguments: %s" msgid "parsed following command arguments: %s"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:344 #: ./cli/app/upgrade.go:342
#, c-format #, c-format
msgid "parsing chosen upgrade version failed: %s" msgid "parsing chosen upgrade version failed: %s"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:388 #: ./cli/app/upgrade.go:386
#, c-format #, c-format
msgid "parsing deployed version failed: %s" msgid "parsing deployed version failed: %s"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:349 #: ./cli/app/upgrade.go:347
#, c-format #, c-format
msgid "parsing deployment version failed: %s" msgid "parsing deployment version failed: %s"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:355 ./cli/app/upgrade.go:394 #: ./cli/app/upgrade.go:353 ./cli/app/upgrade.go:392
#, c-format #, c-format
msgid "parsing recipe version failed: %s" msgid "parsing recipe version failed: %s"
msgstr "" msgstr ""
@ -3973,37 +3897,31 @@ msgstr ""
msgid "pattern" msgid "pattern"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:405 ./cli/app/env.go:327 ./cli/app/remove.go:165 ./cli/app/rollback.go:354 ./cli/app/upgrade.go:463 ./cli/app/volume.go:219 #: ./cli/app/deploy.go:403 ./cli/app/remove.go:165 ./cli/app/rollback.go:351 ./cli/app/upgrade.go:461 ./cli/app/volume.go:219
msgid "perform action without further prompt" msgid "perform action without further prompt"
msgstr "" msgstr ""
#. translators: `abra app env pull` aliases. use a comma separated list of
#. aliases with no spaces in between
#: ./cli/app/env.go:39
msgid "pl,p"
msgstr ""
#: ./cli/recipe/release.go:634 #: ./cli/recipe/release.go:634
#, c-format #, c-format
msgid "please fix your synced label for %s and re-run this command" msgid "please fix your synced label for %s and re-run this command"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:266 #: ./cli/app/rollback.go:263
#, c-format #, c-format
msgid "please select a downgrade (version: %s):" msgid "please select a downgrade (version: %s):"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:271 #: ./cli/app/rollback.go:268
#, c-format #, c-format
msgid "please select a downgrade (version: %s, chaos: %s):" msgid "please select a downgrade (version: %s, chaos: %s):"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:311 #: ./cli/app/upgrade.go:309
#, c-format #, c-format
msgid "please select an upgrade (version: %s):" msgid "please select an upgrade (version: %s):"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:316 #: ./cli/app/upgrade.go:314
#, c-format #, c-format
msgid "please select an upgrade (version: %s, chaos: %s):" msgid "please select an upgrade (version: %s, chaos: %s):"
msgstr "" msgstr ""
@ -4042,7 +3960,7 @@ msgstr ""
msgid "proposed images: %v" msgid "proposed images: %v"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:168 #: ./cli/app/undeploy.go:167
msgid "prune" msgid "prune"
msgstr "" msgstr ""
@ -4051,7 +3969,7 @@ msgstr ""
msgid "prune <server> [flags]" msgid "prune <server> [flags]"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:171 #: ./cli/app/undeploy.go:170
msgid "prune unused containers, networks, and dangling images" msgid "prune unused containers, networks, and dangling images"
msgstr "" msgstr ""
@ -4076,16 +3994,6 @@ msgstr ""
msgid "publish new release?" msgid "publish new release?"
msgstr "" msgstr ""
#. translators: `app pull` command
#: ./cli/app/env.go:77
msgid "pull <domain> [flags]"
msgstr ""
#: ./cli/app/env.go:173
#, c-format
msgid "pulled env values from %s deployment: %s"
msgstr ""
#: ./pkg/app/app.go:429 #: ./pkg/app/app.go:429
msgid "querying remote servers..." msgid "querying remote servers..."
msgstr "" msgstr ""
@ -4094,7 +4002,7 @@ msgstr ""
#. with no spaces in between #. with no spaces in between
#. translators: `abra recipe` aliases. use a comma separated list of aliases #. translators: `abra recipe` aliases. use a comma separated list of aliases
#. with no spaces in between #. with no spaces in between
#: ./cli/app/backup.go:327 ./cli/app/list.go:300 ./cli/app/move.go:350 ./cli/app/run.go:23 ./cli/app/upgrade.go:485 ./cli/catalogue/catalogue.go:302 ./cli/recipe/recipe.go:12 ./cli/recipe/release.go:649 ./cli/recipe/sync.go:272 #: ./cli/app/backup.go:327 ./cli/app/list.go:300 ./cli/app/move.go:350 ./cli/app/run.go:23 ./cli/app/upgrade.go:483 ./cli/catalogue/catalogue.go:302 ./cli/recipe/recipe.go:12 ./cli/recipe/release.go:649 ./cli/recipe/sync.go:272
msgid "r" msgid "r"
msgstr "" msgstr ""
@ -4109,12 +4017,12 @@ msgstr ""
msgid "read %s as tags for recipe %s" msgid "read %s as tags for recipe %s"
msgstr "" msgstr ""
#: ./pkg/app/app.go:584 ./pkg/config/env.go:50 ./pkg/envfile/envfile.go:42 ./pkg/envfile/envfile.go:80 #: ./pkg/app/app.go:575 ./pkg/config/env.go:50 ./pkg/envfile/envfile.go:42 ./pkg/envfile/envfile.go:80
#, c-format #, c-format
msgid "read %s from %s" msgid "read %s from %s"
msgstr "" msgstr ""
#: ./pkg/app/app.go:586 #: ./pkg/app/app.go:577
#, c-format #, c-format
msgid "read 0 command names from %s" msgid "read 0 command names from %s"
msgstr "" msgstr ""
@ -4210,7 +4118,7 @@ msgstr ""
msgid "release <recipe> [version] [flags]" msgid "release <recipe> [version] [flags]"
msgstr "" msgstr ""
#: ./cli/app/upgrade.go:484 #: ./cli/app/upgrade.go:482
msgid "releasenotes" msgid "releasenotes"
msgstr "" msgstr ""
@ -4432,11 +4340,6 @@ msgstr ""
msgid "retrieved app statuses: %s" msgid "retrieved app statuses: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:219
#, c-format
msgid "retrieved env values from .env.sample of %s: %s"
msgstr ""
#: ./cli/recipe/version.go:46 #: ./cli/recipe/version.go:46
msgid "retrieved versions from local recipe repository" msgid "retrieved versions from local recipe repository"
msgstr "" msgstr ""
@ -4454,7 +4357,7 @@ msgstr ""
#. aliases with no spaces in between #. aliases with no spaces in between
#. translators: `abra recipe release` aliases. use a comma separated list of #. translators: `abra recipe release` aliases. use a comma separated list of
#. aliases with no spaces in between #. aliases with no spaces in between
#: ./cli/app/rollback.go:27 ./cli/recipe/release.go:28 #: ./cli/app/rollback.go:26 ./cli/recipe/release.go:28
msgid "rl" msgid "rl"
msgstr "" msgstr ""
@ -4471,7 +4374,7 @@ msgid "rm"
msgstr "" msgstr ""
#. translators: `app rollback` command #. translators: `app rollback` command
#: ./cli/app/rollback.go:31 #: ./cli/app/rollback.go:30
msgid "rollback <domain> [version] [flags]" msgid "rollback <domain> [version] [flags]"
msgstr "" msgstr ""
@ -4514,7 +4417,7 @@ msgstr ""
msgid "run command locally" msgid "run command locally"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:270 ./cli/app/upgrade.go:292 #: ./cli/app/deploy.go:268 ./cli/app/upgrade.go:290
#, c-format #, c-format
msgid "run the following post-deploy commands: %s" msgid "run the following post-deploy commands: %s"
msgstr "" msgstr ""
@ -4557,7 +4460,7 @@ msgstr ""
#. aliases with no spaces in between #. aliases with no spaces in between
#. translators: `abra server` aliases. use a comma separated list of aliases #. translators: `abra server` aliases. use a comma separated list of aliases
#. with no spaces in between #. with no spaces in between
#: ./cli/app/backup.go:198 ./cli/app/backup.go:263 ./cli/app/backup.go:287 ./cli/app/env.go:333 ./cli/app/list.go:323 ./cli/app/logs.go:101 ./cli/app/new.go:358 ./cli/app/restore.go:114 ./cli/app/secret.go:535 ./cli/catalogue/catalogue.go:27 ./cli/catalogue/catalogue.go:310 ./cli/recipe/fetch.go:130 ./cli/recipe/sync.go:24 ./cli/server/server.go:12 #: ./cli/app/backup.go:198 ./cli/app/backup.go:263 ./cli/app/backup.go:287 ./cli/app/list.go:323 ./cli/app/logs.go:101 ./cli/app/new.go:358 ./cli/app/restore.go:114 ./cli/app/secret.go:535 ./cli/catalogue/catalogue.go:27 ./cli/catalogue/catalogue.go:310 ./cli/recipe/fetch.go:130 ./cli/recipe/sync.go:24 ./cli/server/server.go:12
msgid "s" msgid "s"
msgstr "" msgstr ""
@ -4599,12 +4502,12 @@ msgstr ""
msgid "secret not found: %s" msgid "secret not found: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:339 #: ./cli/app/deploy.go:337
#, c-format #, c-format
msgid "secret not generated: %s" msgid "secret not generated: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:337 #: ./cli/app/deploy.go:335
#, c-format #, c-format
msgid "secret not inserted (#generate=false): %s" msgid "secret not inserted (#generate=false): %s"
msgstr "" msgstr ""
@ -4624,7 +4527,7 @@ msgid "secrets are %s shown again, please save them %s"
msgstr "" msgstr ""
#. translators: `abra server` command for autocompletion #. translators: `abra server` command for autocompletion
#: ./cli/app/env.go:332 ./cli/app/env.go:339 ./cli/app/list.go:322 ./cli/app/list.go:329 ./cli/app/new.go:357 ./cli/app/new.go:364 ./cli/run.go:101 #: ./cli/app/list.go:322 ./cli/app/list.go:329 ./cli/app/new.go:357 ./cli/app/new.go:364 ./cli/run.go:101
msgid "server" msgid "server"
msgstr "" msgstr ""
@ -4638,10 +4541,6 @@ msgstr ""
msgid "server [cmd] [args] [flags]" msgid "server [cmd] [args] [flags]"
msgstr "" msgstr ""
#: ./cli/app/env.go:335
msgid "server associated with deployed app"
msgstr ""
#: ./cli/server/add.go:191 #: ./cli/server/add.go:191
#, c-format #, c-format
msgid "server dir for %s already created" msgid "server dir for %s already created"
@ -4728,7 +4627,7 @@ msgstr ""
msgid "severity" msgid "severity"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:437 ./cli/app/rollback.go:378 ./cli/app/upgrade.go:495 #: ./cli/app/deploy.go:435 ./cli/app/rollback.go:375 ./cli/app/upgrade.go:493
msgid "show all configs & images, including unchanged ones" msgid "show all configs & images, including unchanged ones"
msgstr "" msgstr ""
@ -4752,7 +4651,7 @@ msgstr ""
msgid "show debug messages" msgid "show debug messages"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:434 ./cli/app/rollback.go:375 ./cli/app/upgrade.go:492 #: ./cli/app/deploy.go:432 ./cli/app/rollback.go:372 ./cli/app/upgrade.go:490
msgid "show-unchanged" msgid "show-unchanged"
msgstr "" msgstr ""
@ -4800,11 +4699,11 @@ msgstr ""
msgid "skipping converge logic checks" msgid "skipping converge logic checks"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:198 #: ./cli/app/deploy.go:196
msgid "skipping domain checks" msgid "skipping domain checks"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:195 #: ./cli/app/deploy.go:193
msgid "skipping domain checks, no DOMAIN=... configured" msgid "skipping domain checks, no DOMAIN=... configured"
msgstr "" msgstr ""
@ -4818,12 +4717,12 @@ msgstr ""
msgid "skipping secret (because it already exists) on %s: %s" msgid "skipping secret (because it already exists) on %s: %s"
msgstr "" msgstr ""
#: ./pkg/app/app.go:692 #: ./pkg/app/app.go:683
#, c-format #, c-format
msgid "skipping version %s write as already exists in %s.env" msgid "skipping version %s write as already exists in %s.env"
msgstr "" msgstr ""
#: ./pkg/app/app.go:686 #: ./pkg/app/app.go:677
#, c-format #, c-format
msgid "skipping writing version %s because dry run" msgid "skipping writing version %s because dry run"
msgstr "" msgstr ""
@ -5135,16 +5034,6 @@ msgstr ""
msgid "unable to delete tag %s: %s" msgid "unable to delete tag %s: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:191
#, c-format
msgid "unable to determine recipe type from %s, env: %v"
msgstr ""
#: ./cli/app/env.go:106
#, c-format
msgid "unable to determine server of app %s, please pass --server/-s"
msgstr ""
#: ./cli/recipe/upgrade.go:253 #: ./cli/recipe/upgrade.go:253
#, c-format #, c-format
msgid "unable to determine versioning semantics of %s, listing all tags" msgid "unable to determine versioning semantics of %s, listing all tags"
@ -5175,11 +5064,6 @@ msgstr ""
msgid "unable to git pull in %s: %s" msgid "unable to git pull in %s: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:158
#, c-format
msgid "unable to inspect container for %s: %s"
msgstr ""
#: ./pkg/lint/recipe.go:496 #: ./pkg/lint/recipe.go:496
#, c-format #, c-format
msgid "unable to list local tags for %s" msgid "unable to list local tags for %s"
@ -5189,11 +5073,6 @@ msgstr ""
msgid "unable to locate git command, cannot output diff" msgid "unable to locate git command, cannot output diff"
msgstr "" msgstr ""
#: ./cli/app/env.go:117
#, c-format
msgid "unable to look up server context for %s: %s"
msgstr ""
#: ./cli/recipe/fetch.go:77 ./pkg/git/read.go:26 ./pkg/lint/recipe.go:491 ./pkg/recipe/git.go:236 #: ./cli/recipe/fetch.go:77 ./pkg/git/read.go:26 ./pkg/lint/recipe.go:491 ./pkg/recipe/git.go:236
#, c-format #, c-format
msgid "unable to open %s: %s" msgid "unable to open %s: %s"
@ -5249,11 +5128,6 @@ msgstr ""
msgid "unable to query status of %s: %s" msgid "unable to query status of %s: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:243
#, c-format
msgid "unable to read new env %s: %s"
msgstr ""
#: ./pkg/recipe/git.go:241 #: ./pkg/recipe/git.go:241
#, c-format #, c-format
msgid "unable to read remotes in %s: %s" msgid "unable to read remotes in %s: %s"
@ -5304,11 +5178,6 @@ msgstr ""
msgid "unable to retrieve %s resources on %s: %s" msgid "unable to retrieve %s resources on %s: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:153
#, c-format
msgid "unable to retrieve container for %s: %s"
msgstr ""
#: ./cli/app/list.go:153 #: ./cli/app/list.go:153
#, c-format #, c-format
msgid "unable to retrieve tags for %s: %s" msgid "unable to retrieve tags for %s: %s"
@ -5339,16 +5208,6 @@ msgstr ""
msgid "unable to validate recipe: %s" msgid "unable to validate recipe: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:238 ./cli/app/env.go:298
#, c-format
msgid "unable to write new env %s: %s"
msgstr ""
#: ./cli/app/env.go:264 ./cli/app/env.go:270
#, c-format
msgid "uncommenting %s"
msgstr ""
#: ./pkg/upstream/convert/service.go:462 #: ./pkg/upstream/convert/service.go:462
#, c-format #, c-format
msgid "undefined config %q" msgid "undefined config %q"
@ -5374,7 +5233,7 @@ msgstr ""
msgid "undeploy <domain> [flags]" msgid "undeploy <domain> [flags]"
msgstr "" msgstr ""
#: ./cli/app/undeploy.go:117 #: ./cli/app/undeploy.go:116
msgid "undeploy succeeded 🟢" msgid "undeploy succeeded 🟢"
msgstr "" msgstr ""
@ -5407,7 +5266,7 @@ msgstr ""
msgid "unknown" msgid "unknown"
msgstr "" msgstr ""
#: ./cli/app/rollback.go:149 #: ./cli/app/rollback.go:148
msgid "unknown deployed version, unable to downgrade" msgid "unknown deployed version, unable to downgrade"
msgstr "" msgstr ""
@ -5430,11 +5289,6 @@ msgstr ""
msgid "unknown restart policy: %s" msgid "unknown restart policy: %s"
msgstr "" msgstr ""
#: ./cli/app/env.go:111
#, c-format
msgid "unknown server %s, run \"abra server add %s\"?"
msgstr ""
#: ./pkg/client/client.go:51 #: ./pkg/client/client.go:51
#, c-format #, c-format
msgid "unknown server, run \"abra server add %s\"?" msgid "unknown server, run \"abra server add %s\"?"
@ -5563,7 +5417,7 @@ msgstr ""
msgid "version" msgid "version"
msgstr "" msgstr ""
#: ./pkg/app/app.go:690 #: ./pkg/app/app.go:681
#, c-format #, c-format
msgid "version %s saved to %s.env" msgid "version %s saved to %s.env"
msgstr "" msgstr ""
@ -5587,32 +5441,32 @@ msgstr ""
msgid "version seems invalid: %s" msgid "version seems invalid: %s"
msgstr "" msgstr ""
#: ./pkg/app/app.go:629 #: ./pkg/app/app.go:620
#, c-format #, c-format
msgid "version wiped from %s.env" msgid "version wiped from %s.env"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:353 #: ./cli/app/deploy.go:351
#, c-format #, c-format
msgid "version: taking chaos version: %s" msgid "version: taking chaos version: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:379 #: ./cli/app/deploy.go:377
#, c-format #, c-format
msgid "version: taking deployed version: %s" msgid "version: taking deployed version: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:384 #: ./cli/app/deploy.go:382
#, c-format #, c-format
msgid "version: taking new recipe version: %s" msgid "version: taking new recipe version: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:373 #: ./cli/app/deploy.go:371
#, c-format #, c-format
msgid "version: taking version from .env file: %s" msgid "version: taking version from .env file: %s"
msgstr "" msgstr ""
#: ./cli/app/deploy.go:359 #: ./cli/app/deploy.go:357
#, c-format #, c-format
msgid "version: taking version from cli arg: %s" msgid "version: taking version from cli arg: %s"
msgstr "" msgstr ""
@ -5735,7 +5589,7 @@ msgstr ""
msgid "writer: %v, " msgid "writer: %v, "
msgstr "" msgstr ""
#: ./cli/app/deploy.go:277 ./cli/app/new.go:241 ./cli/app/rollback.go:255 ./cli/app/undeploy.go:120 ./cli/app/upgrade.go:300 #: ./cli/app/deploy.go:275 ./cli/app/new.go:241 ./cli/app/rollback.go:252 ./cli/app/undeploy.go:119 ./cli/app/upgrade.go:298
#, c-format #, c-format
msgid "writing recipe version failed: %s" msgid "writing recipe version failed: %s"
msgstr "" msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -127,14 +127,3 @@ teardown(){
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success assert_success
} }
# bats test_tags=slow
@test "new env version written to container env" {
run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input
assert_success
run docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' \
$(docker ps -f name="$TEST_APP_DOMAIN_$TEST_SERVER" -q)
assert_success
assert_output --partial "$TEST_RECIIPE:0.1.0+1.20.0"
}

View File

@ -28,17 +28,17 @@ teardown(){
} }
@test "validate app argument" { @test "validate app argument" {
run $ABRA app env list run $ABRA app env
assert_failure assert_failure
run $ABRA app env list DOESNTEXIST run $ABRA app env DOESNTEXIST
assert_failure assert_failure
} }
@test "show env version" { @test "show env version" {
latestRelease=$(_latest_release) latestRelease=$(_latest_release)
run $ABRA app env list "$TEST_APP_DOMAIN" run $ABRA app env "$TEST_APP_DOMAIN"
assert_success assert_success
assert_output --partial "$latestRelease" assert_output --partial "$latestRelease"
} }
@ -48,7 +48,7 @@ teardown(){
assert_success assert_success
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
run $ABRA app env list "$TEST_APP_DOMAIN" run $ABRA app env "$TEST_APP_DOMAIN"
assert_success assert_success
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
@ -57,44 +57,3 @@ teardown(){
run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/foo" run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
} }
@test "app env pull explodes when no deployed app" {
run $ABRA app env pull "$TEST_APP_DOMAIN" -s "$TEST_SERVER"
assert_failure
}
# bats test_tags=slow
@test "app env pull recreates app env when missing" {
run $ABRA app deploy "$TEST_APP_DOMAIN" --no-input
assert_success
run rm -rf "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run $ABRA app env pull "$TEST_APP_DOMAIN" -s "$TEST_SERVER"
assert_success
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
}
# bats test_tags=slow
@test "app env pull recreates correct version" {
run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input
assert_success
run grep -q "TYPE=$TEST_RECIPE:0.1.0+1.20.0" \
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
run rm -rf "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
assert_not_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run $ABRA app env pull "$TEST_APP_DOMAIN" -s "$TEST_SERVER"
assert_success
assert_exists "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
run grep -q "TYPE=$TEST_RECIPE:0.1.0+1.20.0" \
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
}

View File

@ -33,29 +33,10 @@ teardown(){
assert_success assert_success
run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" \ run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" \
--no-input --no-converge-checks --no-input --no-converge-checks --debug
assert_success assert_success
run grep -q "TYPE=abra-test-recipe:0.1.0+1.20.0" \ run grep -q "TYPE=abra-test-recipe:0.1.0+1.20.0" \
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success assert_success
} }
# bats test_tags=slow
@test "new env version written to container env" {
run $ABRA app deploy "$TEST_APP_DOMAIN" "0.2.0+1.21.0" --no-input
assert_success
run grep -q "TYPE=abra-test-recipe:0.2.0+1.21.0" \
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
run $ABRA app rollback "$TEST_APP_DOMAIN" "0.1.0+1.20.0" \
--no-input
assert_success
run docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' \
$(docker ps -f name="$TEST_APP_DOMAIN_$TEST_SERVER" -q)
assert_success
assert_output --partial "$TEST_RECIIPE:0.1.0+1.20.0"
}

View File

@ -256,7 +256,7 @@ teardown(){
} }
# bats test_tags=slow # bats test_tags=slow
@test "specific version upgrade after chaos deploy" { @test "commit deploy upgrade is possible" {
tagHash=$(_get_tag_hash "0.1.0+1.20.0") tagHash=$(_get_tag_hash "0.1.0+1.20.0")
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$tagHash" run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$tagHash"
assert_success assert_success
@ -269,26 +269,17 @@ teardown(){
assert_success assert_success
assert_output --regexp "CURRENT DEPLOYMENT.*${tagHash:0:8}" assert_output --regexp "CURRENT DEPLOYMENT.*${tagHash:0:8}"
assert_output --regexp "ENV VERSION.*${tagHash:0:8}" assert_output --regexp "ENV VERSION.*${tagHash:0:8}"
assert_output --regexp "NEW DEPLOYMENT.*0\.1\.1\+1\.20\.2"
} }
# bats test_tags=slow @test "chaos commit upgrade is possible" {
@test "upgrade to latest after chaos deploy" { run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input --no-converge-checks
latestRelease=$(_latest_release)
tagHash=$(_get_tag_hash "0.1.0+1.20.0")
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" checkout "$tagHash"
assert_success assert_success
assert_output --partial '0.1.0+1.20.0'
run $ABRA app deploy "$TEST_APP_DOMAIN" --no-input --no-converge-checks --chaos tagHash=$(_get_tag_hash "0.2.0+1.21.0")
assert_success
assert_output --partial "${tagHash:0:8}"
run $ABRA app upgrade "$TEST_APP_DOMAIN" --no-input --no-converge-checks run $ABRA app upgrade "$TEST_APP_DOMAIN" "$tagHash" --no-input --no-converge-checks
assert_success assert_success
assert_output --regexp "CURRENT DEPLOYMENT.*${tagHash:0:8}"
assert_output --regexp "ENV VERSION.*${tagHash:0:8}"
assert_output --partial "${latestRelease}"
} }
# bats test_tags=slow # bats test_tags=slow

View File

@ -40,21 +40,3 @@ teardown(){
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success assert_success
} }
# bats test_tags=slow
@test "new env version written to container env" {
run $ABRA app deploy "$TEST_APP_DOMAIN" "0.1.0+1.20.0" --no-input
assert_success
run grep -q "TYPE=abra-test-recipe:0.1.0+1.20.0" \
"$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env"
assert_success
run $ABRA app upgrade "$TEST_APP_DOMAIN" "0.2.0+1.21.0" --no-input
assert_success
run docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' \
$(docker ps -f name="$TEST_APP_DOMAIN_$TEST_SERVER" -q)
assert_success
assert_output --partial "$TEST_RECIIPE:0.2.0+1.21.0"
}

View File

@ -101,9 +101,6 @@ teardown() {
assert_success assert_success
assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" assert_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo"
run $ABRA recipe sync "$TEST_RECIPE" --no-input --patch
assert_success
run $ABRA recipe release "$TEST_RECIPE" --no-input --patch run $ABRA recipe release "$TEST_RECIPE" --no-input --patch
assert_success assert_success
assert_output --partial 'no -p/--publish passed, not publishing' assert_output --partial 'no -p/--publish passed, not publishing'
@ -122,9 +119,6 @@ teardown() {
run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" commit -m "added some release notes" run git -C "$ABRA_DIR/recipes/$TEST_RECIPE" commit -m "added some release notes"
assert_success assert_success
run $ABRA recipe sync "$TEST_RECIPE" --no-input --patch
assert_success
run $ABRA recipe release "$TEST_RECIPE" --no-input --minor run $ABRA recipe release "$TEST_RECIPE" --no-input --minor
assert_success assert_success
assert_output --partial 'no -p/--publish passed, not publishing' assert_output --partial 'no -p/--publish passed, not publishing'