flipover

0.17.1 • Public • Published

flipover

TCP server and deployment system that flips from one deployment to another.

// server.js
var flipover = require('../')
  , childport = require('childport')
  ;
 
function run (deploy, cb) {
  function finish (e) {
    cb(e, p)
  }
  var p = childport.cp(deploy.port, finish).spawn('node', [__dirname+'/child.js'])
  deploy.outputProcess(p)
}
 
function test (deploy, cb) {
  request('http://localhost:'+deploy.port+'/test', function (e, resp, body) {
    if (e) return cb(e)
    if (resp.statusCode !== 200) return cb(new Error('statusCode is not 200', resp.statusCode))
  })
}
 
flipover(run, test).listen(8080, 7171)
var http = require('http')
  , childport = require('childport')
  ;
 
childport.listen(http.createServer(function (req, resp) {
  resp.statusCode = 200
  resp.end('ok')
}))

deploy.port

Port to listen on. Callbacks for new deployments must not be resolved until the server is listening on this port.

flipover(function (deploy, cb) {}, [function test (deploy, cb) {}])

Returns a flipover server.

Requires a function for you to write your deployment code. This function takes two arguments: a Deploy instance and a callback which takes two arguments: error and an instance of child_process.ChildProcess which will be monitored and killed if need be.

Optionally you can also pass a test function which is used to validate the server is working and test it periodically.

FlipOver.listen(serverPort, adminPort, cb)

Listen.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.17.1
    4
    • latest

Version History

Package Sidebar

Install

npm i flipover

Weekly Downloads

4

Version

0.17.1

License

BSD

Last publish

Collaborators

  • joeybaker
  • techwraith
  • benng
  • mikeal