diff --git a/cli/app/deploy.go b/cli/app/deploy.go index 765e3a6e7..a44eee808 100644 --- a/cli/app/deploy.go +++ b/cli/app/deploy.go @@ -81,6 +81,11 @@ recipes. logrus.Fatal(err) } } + } else { + logrus.Infof("choosing '%s' as version to deploy", version) + if err := recipe.EnsureVersion(app.Type, version); err != nil { + logrus.Fatal(err) + } } if internal.Chaos { diff --git a/pkg/recipe/recipe.go b/pkg/recipe/recipe.go index 975dba136..64a0a9a7b 100644 --- a/pkg/recipe/recipe.go +++ b/pkg/recipe/recipe.go @@ -109,6 +109,15 @@ func EnsureExists(recipe string) error { func EnsureVersion(recipeName, version string) error { recipeDir := path.Join(config.ABRA_DIR, "apps", recipeName) + isClean, err := gitPkg.IsClean(recipeName) + if err != nil { + return err + } + + if !isClean { + return fmt.Errorf("'%s' has locally unstaged changes", recipeName) + } + repo, err := git.PlainOpen(recipeDir) if err != nil { return err