var app model.App output, err := cmd.Execute(`git clone %s`, url) Expect(err).NotTo(HaveOccurred(), output) // infer app directory from URL splits := strings.Split(url, "/") dir := strings.TrimSuffix(splits[len(splits)-1], ".git") os.Chdir(dir) // create with custom buildpack if needed var args []string if buildpack != "" { args = append(args, fmt.Sprintf("--buildpack %s", buildpack)) } app = apps.Create(user, args...) defer apps.Destroy(user, app) git.Push(user, keyPath, app, banner) }, // NOTE: Keep this list up-to-date with any example apps that are added // under the github/deis org, or any third-party apps that increase coverage // or prevent regressions. Entry("Clojure", "https://github.com/deis/example-clojure-ring.git", "", "Powered by Deis"), Entry("Go", "https://github.com/deis/example-go.git", "", "Powered by Deis"), Entry("Java", "https://github.com/deis/example-java-jetty.git", "", "Powered by Deis"), Entry("Multi", "https://github.com/deis/example-multi", "", "Heroku Multipack Test"), Entry("NodeJS", "https://github.com/deis/example-nodejs-express.git", "",
Context("and has run `deis apps:create` from within that repo", func() { var app model.App BeforeEach(func() { os.Chdir("example-go") app = apps.Create(user) }) AfterEach(func() { apps.Destroy(user, app) }) Specify("that user can deploy that app using a git push", func() { git.Push(user, keyPath, app, "Powered by Deis") }) Specify("that user can interrupt the deploy of the app and recover", func() { git.PushWithInterrupt(user, keyPath) git.PushUntilResult(user, keyPath, model.CmdResult{ Out: nil, Err: []byte("Everything up-to-date"), ExitCode: 0, }) }) Specify("that user can deploy that app only once concurrently", func() { sess := git.StartPush(user, keyPath)
output, err := cmd.Execute(`git clone https://github.com/deis/example-go.git`) Expect(err).NotTo(HaveOccurred(), output) }) Context("and has run `deis apps:create` from within that repo", func() { var app model.App BeforeEach(func() { os.Chdir("example-go") app = apps.Create(user) }) AfterEach(func() { apps.Destroy(user, app) }) Specify("that user can deploy that app using a git push", func() { git.Push(user, keyPath) }) }) }) }) }) })