Prior to creating Jenkins jobs and Capistrano recipes you should prepare NodeJS dependencies and scripts. This article does not provide in-depth details about NodeJS.
The assumptions are that nodeunit is used for unit testing, forever for process management, and ExpressJS for creating a web server.
Step 1: Create a package.json file:
NodeJS dependencies and utility scripts can be configured through the package.json file. Below is an example of such a file:
{ "config": { "unsafe-perm": true }, "scripts": { "test": "node_modules/.bin/nodeunit tests.js", "start": "./node_modules/forever/bin/foreverd start app.js", "stop": "./node_modules/forever/bin/foreverd stop app.js" }, "dependencies": { "express": "*", "forever": "*", "nodeunit": "^0.9.0" } }
More details can be found here: https://www.npmjs.org/doc/json.html and here: http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever/
Step 2: Add some tests.js content (based on https://github.com/caolan/nodeunit):
exports.testSomething = function(test){ test.expect(1); test.ok(true, "this assertion should pass"); test.done(); };
Step 3: Add a dummy app.js file (based on: http://expressjs.com/guide.html#intro):
var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('Hello World'); });
var server = app.listen(3000, function() { console.log('Listening on port %d', server.address().port); });