
Show HN: better software deployment with Git - arnoooooo
http://github.com/arnoo/git-deliver
======
jafaku
Git is a source version control system. Why does everybody keep trying to use
it as a deployment tool?

~~~
nextw33k
That's a really odd comment to make. Surely automating the steps to deployment
is a good thing.

Git has hooks for kicking off processes, its extensible, deployment scripts
don't alter the core of git. What's the problem with evolving something?

~~~
tutufan
Not odd. OP Is noting that this seems to confuse "make" with "make install".
This leads to problems.

------
lwhalen
As a sysadmin, seeing this kind of stuff gives me The Rage(tm). Don't fight
the distro - your distro of choice (Debian, RedHat, _BSD,_ -buntu, whatever)
already HAS ways of deploying your software. It even plays nice with
interdependencies between different packages, allows custom scripts at
different stages of deployment, etc. They're not perfect, but they ARE
standard. Learn them, use them, love them, and if there's anything
particularily egregious about some aspect of them, they're open source so you
can submit patches. Literally every job I've ever had as a sysadmin has
started with "...so the developers rolled their own software distribution tool
and we're learning the hard way that we've blown a sizable hole in our
collective foot with it". Working with developers to apply a suitable dose of
RPM or DEB magic (99% of the time, these systems are Linux-based and speak one
of those two packages) solves the problem, and everyone agrees that it's a
better solution.

Don't fight the distro, people. They've hit all of your problems harder,
sooner, and with more edge-cases than you can care to imagine.

------
girvo
Does it still have the `.git` folder? If so, I'll stick to writing regular
build scripts, as nice as this seems. I also want to push a snapshot of a
build artifact (sort of, it's PHP after all) - not sending a few folders,
sending commands to the remote server to execute, etc.

Anyone have a better way of achieving what I want that doesn't require my
hacked together `build.php --deploy` script?

~~~
drcongo
I like Fabric: [http://docs.fabfile.org](http://docs.fabfile.org)

~~~
girvo
Brilliant. Cheers, I've been looking for something like this for ages. Sick of
my hacky bash and PHP scripts.

------
georgecalm
This looks similar to fleet[1] (which is awesome, btw). git-deliver looks a
bit more complicated, though designed for more than just Node deployments.

[1] [https://github.com/substack/fleet](https://github.com/substack/fleet)

------
laurent123456
Seems like a great tool, I will definitely give it a try on my next project.
So if I understand well, Git doesn't have to be installed on the production
server(s), only SSH access is needed, right?

~~~
arnoooooo
No, Git is required on the server(s). It's used for a few things, the most
important being the creation of each delivery clone.

------
jeantristan
What's the difference with capistrano?

~~~
tigroferoce
It also looks like using ansible + git. However, also gitflow is just a clever
use of git branches, but having a standard way of doing things using simple
existing tools (git + ssh here) defined by someone who has studied the problem
is very valuable to other people who has similar issues, but didn't study the
case yet.

