Then we tag the version with `npm tag app@VERSION pre-prod`
Then you install it to pre-prod however you like:
We use sinopia as a distribution of the artefact (for the meta
information) and curl the tar ball directly
NAME='app' TAG='pre-prod' VER=`npm view $NAME@$TAG dist-tags.$TAG`URL=`npm view $NAME@$TAG dist.tarball` curl $URL -u $USER:$PASSWORD -o $NAME-$VER.tgz
The only thing left is to run `npm rebuild` to eventually
recompile your native libraries (if your test system does not
have the same)
If that works you only need to tag this version to production
`npm tag app@VERSION production`
Tagging the source repo is usually not enough: image you have
to create a new build because a dependency changed. There are
now two version of the same source version. Unless you add all
vendored versions to git as well - but we find this confusing
(but some like it this way)
Some Notes:
- npm shrinkwrap does not play with some versions of npm (we use
1.4.5 for now)
- npm install is slow for big npm packages, curl does not have
that issue
- tagging with npm publish --tag (always adds latest), adding
the tag to the publishConfig in package.json does NOT add it to
latest
After using this process, our builds became reliable, without
dependencies of (git, npmjs) while deploying/scaling new
servers. Also less tools are needed on the server so the initial
machine creation is very fast. Same for updates, just curl the
new version, unpack it, switch the version in nginx.
So my vote is:
--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/e8700c10-dd53-48a4-9bc0-0919675d3f0c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
I'd like to know what people have done for node.js application deployments.
Coming from a compiled-language background, I'm used to compiling things, packing them up into some artifact, and deploying that to a server. This seems unnecessary in node though.A few questions on this:
- Have you seen any benefit to packing up (perhaps just a zip file) all the files from a node application and putting that in an artifact repository?
- Is there any reason not to just tag the source repo and copy (rsync, scp, etc) the files to the servers from there?
- Is there any benefit to publishing the application to an internal npm repository and deploying from there?
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/539afa0a.0743ec0a.641b.5166%40mx.google.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CA%2BoarRJo28A6j1ZH2B3_gw8bNfbxW%3D31OyT6ZvBx_PmUGM6b6w%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CAPJ5V2b3%3DD_uLhpm0u6U-ZOMx9QtEsc3B3jYu-L6%2BKWvcBjPdg%40mail.gmail.com.
Recently a friend of mine ( necker at gibhub ) introduced me to Thalassa and Aqueduct:
Is anyone running this kind of "load balancer" management system? Any recommendations ?
Cool, recluster seems useful in some cases.Still if you want to roll back or see which version of the app your server is running, you would have to build it yourself.