Open tj opened 12 years ago
just brainstorming, in a lot of ways tarballs would be superior to npm/gem etc
Agreed - we've had deployments fail when npm fails, taking the app offline. It would be great if we had the ability for the app to be deployed and run npm installed in a location where the app isn't running from, tarbell'ed up, then copied and extracted to the desired location. This would prevent the app from going offline when npm fails or is slow. Right now the only way to do this is from a CI server.
yeah, it would be more akin to go's nice binary stuff, really hot to roll up your deps into one thing
ah yeah that may be a good solution, you could essentially do a 'pre-install' by just doing and npm install in one location and only if that succeeds deploy the app and the tarballed npm install location.
what about binary modules though? or do you mean the tarballs will be generated on the server?
well you could do a number of things, you could build the tar ball on one server and push it out to the others etc, or cross compile
I would assume this would be for deploying to remote servers that don't have firewall access to an internal (firewall-ed) git repo. I wrote something like this for Vlad a few years ago and it see use, although not a ton.
# sudo code
if $CONFIG_TARBALL
cd /tmp
git clone $REPO
cd $REPO
git checkout $BRANCH_OR_TAG_OR_SHA
git archive /tmp/tar.tmp # whatever the command is
tar -czf /tmp/release.tgz /tmp/tar.tmp
scp /tmp/release.tgz $HOST:/tmp
ssh $HOST bash -c 'tar -xzf /tmp/release.tgz $PATH'
else
# standard method
fi
Obviously that's pseudo-code and won't really work, but you get the idea.
Just curious, why? Seems like additional complexity for not much gain...?