Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to start/stop/restart a node.js server process from Bamboo?

Nils Winkler March 16, 2015

I have the following requirement, and would like to understand how to do this from Bamboo:

  • Run a build using tools like Grunt - this is not a problem, that's already working through the script task.
  • The result of the build is a directory (or artifact) that contains all of the node/npm dependencies of the project.
  • The project contains a JavaScript file that I need to run using the `node` executable. It will start a Node.js Connect/Express server.
  • This server process is supposed to keep running once the build is over.

What are my options for doing this? Some ideas I've had:

  • Start the node process from a script using `node index.js &` (or `nohup`) to keep it running. In this scenario, I would need to kill the previous instance of the server before starting the new one.
  • Have something like `nodemon` run the server continuously outside of Bamboo, copy over the directory/artifact as the last (deployment) step in the build.

Any other ideas? How have other people solved this?

 

 

1 answer

1 vote
Hendrik Payer March 16, 2015

Hi Nils,

We run our node servers using forever (npm package) and init scripts based on http://blog.podrezo.com/init-d-startupshutdown-script-for-node-js-applications-via-forever/.

So when we are deploying the applications we do the following from a SSH Task:

  • execute /etc/init.d/ournodeserver stop
  • unpack our artifact to the correct path
  • execute /etc/init.d/ournodeserver start

We are using deployment projects in Bamboo, our builds only create packages that we deploy into several environments.

Nils Winkler March 16, 2015

Thanks for the reply - this looks great. I've done some research and it looks like I'll be using a similar approach using forever + nodemon. Since it's just a test system, I probably won't integrate with init.d.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events