Suitability as a deployment tool

73 views
Skip to first unread message

Richard McGain

unread,
Feb 28, 2013, 2:55:58 PM2/28/13
to babush...@googlegroups.com
I currently have rake task to deploy our app to heroku, jumping through a few hoops beforehand. The script is not very robust though, and I have been looking for solutions. Babushka seems to tackle the robustness well, but I am wondering if it is suited to deployments with a bunch of linear commands?

The scope of our deploy process is a bunch of heroku commands (heroku run rake db:migrate for example), a bunch of git commands (push, pull, commit, merge, tag etc.) plus miscellaneous checks for ci, various generators, etc.

Most deployment solutions do not seem to suit because they don't interact with heroku.

Thanks for your opinions,

Richard. 

Ben Hoskings

unread,
Feb 28, 2013, 7:40:16 PM2/28/13
to babush...@googlegroups.com
Hi Richard,

Yep, I've built exactly this thing :) I really should write it up. It'd be fairly easy to adapt it to use heroku.

The dep I use is 'benhoskings:push!'. That does:

- preflight checks, like a clean local repo, deploy commit on origin, etc
- Invoke `git push` (on the other end, babushka is fired to handle the actual deploy, which is set up by 'benhoskings:web repo'
- Handle custom tasks with 'before push' and 'after push', if they're defined in ./babushka-deps in your app.

Get back to me with whatever questions you have, I can help more on the weekend.

- Ben







--
--
To post, email babush...@googlegroups.com
To unsubscribe, email babushka_app...@googlegroups.com
~
http://babushka.me
http://github.com/benhoskings/babushka
http://groups.google.com/group/babushka_app
 
---
You received this message because you are subscribed to the Google Groups "babushka_app" group.
To unsubscribe from this group and stop receiving emails from it, send an email to babushka_app...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Cheers
Ben

Richard McGain

unread,
Mar 13, 2013, 9:11:09 AM3/13/13
to babush...@googlegroups.com

So, my experiences so far have been positive. I do have a question though.


I was confused for a while about meta does, and I ended up digging through the code to figure out how it works. This turned out to not be a bad thing, as the codebase is very easy to understand.


Despite digging around though, I can't figure out all the different ways that people are using git. Or rather, why people use git differently,


There is the Babushka::GitRepo class that allows us to do stuff like changing branches, hard resets etc. (All very useful), but then sometimes I see calls to repo.repo_shell and sometimes just calls to shell("git blah"). What is the difference and why should I use one over the other (or bother using the GitRepo class at all)?


Thanks, 


Richard.


Ben Hoskings

unread,
Mar 13, 2013, 7:19:25 PM3/13/13
to babush...@googlegroups.com
Hi Richard,

It's down to personal style. I'd say it's better to use GitRepo in general, and definitely if you're doing more than one operation on a repo, because it wraps up known-good shell commands.

But GitRepo#repo_shell is public for a good reason: GitRepo is far from exhaustive (and will probably stay that way); it's for wrapping up the common stuff, not being a complete git interface.

Finally, shelling out to git works too, but I avoid it now. Anywhere in babushka itself or my deps that there's a `git blah` call, it's probably just that I wrote it before GitRepo :)

- Ben



--
--
To post, email babush...@googlegroups.com
To unsubscribe, email babushka_app...@googlegroups.com
~
http://babushka.me
http://github.com/benhoskings/babushka
http://groups.google.com/group/babushka_app
 
---
You received this message because you are subscribed to the Google Groups "babushka_app" group.
To unsubscribe from this group and stop receiving emails from it, send an email to babushka_app...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Cheers
Ben

Reply all
Reply to author
Forward
0 new messages