🚀  Our new eBook is out – “CI/CD for Monorepos.” Learn how to effectively build, test, and deploy code with monorepos. Download now →

Announcing Support for JavaScript and Node.js Projects on Semaphore

We are very excited to announce that Semaphore now has full support for testing and deploying JavaScript projects via Node.js.

Semaphore started out with the goal to provide the best CI experience for private Ruby projects. Over time we’ve been gradually making it possible to work with projects in other languages by expanding our build platform. The web browser is the most popular platform today and the sheer number of projects in JavaScript on GitHub reflects that, as well as the number of requests by our existing users. Many were already testing their JavaScript projects on Semaphore, so it was a logical next step for us to upgrade its’ status.

Setting up your Node.js project

The steps for setting up your Node.js project on Semaphore are as simple as for setting up Ruby a project.

During the analysis of your repository Semaphore will recognize that it is a JavaScript project and preselect a version of Node.js to be used in builds. You can still change the target language and version manually of course. The suggested build commands will reflect your selection.


Semaphore can autoconfigure your JavaScript project for continuous integration.

In the build environment Semaphore has the Node Package Manager preinstalled, so you can easily install your dependencies specified in package.json, or install new global packages by using npm, for example:

npm install 

If you do not have a Semaphore account, sign up and add your first JavaScript project today.

Available versions

Semaphore’s current build platform has the following versions of Node.js preinstalled:

– 0.8.26
– 0.10.24 (latest stable version)
– 0.11.10 (latest unstable version)

For managing versions we use Node Version Manager. For easy switching, we have set the corresponding version aliases as:

– 0.8 => 0.8.26
– 0.10 => 0.10.24
– 0.11.10 => 0.11

If you want to use another version, you can simply add a build setup command to install it:

nvm install 

Semaphore also makes the following tools available:

Grunt task runner
Bower web package manager

Database access

If you are developing a Node.js project that works with a database, see our refreshed Database access documentation page for information about the engines available and required credentials.

For Rails apps with generate a working config/database.yml based on the selected database in project settings. We are open to identifying a similar common use case for Node.js apps. So if you have a Node.js project and work with a database, feel free to get in touch and tell us how you are configuring it.

Have a comment? Join the discussion on the forum