Welcome!

Java IoT Authors: Carmen Gonzalez, Liz McMillan, Yeshim Deniz, Elizabeth White, Pat Romanski

Related Topics: Java IoT, Open Source Cloud, Machine Learning , Apache

Java IoT: Blog Post

How to Deploy a node.js App from GitHub to Heroku

How to set up Continuous Integration and Continuous Deployment for a node.js Application from GitHub to Heroku

In this blog post we're gonna deploy a Node.js application from a GitHub repository to Heroku using the Codeship.

We've set up a simple Node.js application called codefish which contains some Jasmine specs. We'll use screenshots of this application in this blog post. If you don't have an own project to set up but you want to follow along on your computer, just fork the repository.

codefish-node on GitHub

Together, we're gonna deploy this application to Heroku using the Codeship.

The Codeship Landing Page

First, sign in to the Codeship with GitHub. The Codeship needs access to your GitHub repositories to be able to set them up. Let's allow access.

GitHub Access

We're back at the Codeship. Now let's create your first project.

Let's set up our first project on the Codeship

The first step of your project setup is to select GitHub as your repository provider.

Select your repository provider

In the list of your GitHub repositories

Search for your repository in the list

search for the repository you want to set up and select it. In my case I search for "codefish".

Find your repository in the filtered list

Now your repository is connected and you can set up your test commands:

Set up your test commands

Codefish is a Node.js application. So I choose "Node.js" as my framework. This prepopulates the setup commands and the test commands for you.

Select Node.js as your technology

The Codeship suggests Node.js 0.10.18, but you can use whatever Node version you like. If you're unsure about the Node version of your project, type node -v in the Terminal.

Type ruby -v and find out your Ruby version

Just copy your Node version into the nvm install and nvm use statements.

If you want to run Jasmine specs, you need to install jasmine-node globally additionally to your node modules. In this case just add npm install -g jasmine-node after npm install.

You don't need npm test for your Jasmine specs, so you can comment it by adding a hash key before the command. Instead, add jasmine-node spec to the test commands to run your Jasmine specs.

Comment the test command <code>npm test</code> and add <code>jasmine-node spec</code>

Now let's finish your setup and go to the dashboard.

Finish your setup. You are on the Dashboard now

You can trigger a build for your application by pushing to your repository. Let's add the Codeship status image to the README file. I use markdown syntax to insert the image.

Copy the code for the Codeship status badge to your README file

Now commit and push this change.

Commit and push your change

This triggered a new build on the Codeship.

A new build got triggered on the Codeship

You can access the build details by clicking the arrow on the right. Here you can follow the running build.

Click on the arrow to the right to access the build details

And a few seconds later your build succeeded! Great!

Look at all the commands that are running

You see all the commands that were run. After a few initial preparation commands the Codeship ran the commands that you specified a few moments ago.

You can inspect the output of a single command by clicking on it. For the codefishapplication, we can see that two Jasmine specs were run.

Look at the log of a single command by clicking on it

You've already pushed to your repository, watched your build log and got a green build. So you can finish the assistant at the top.

Finish the setup wizard by clicking on the click to finish button

Now let's deploy your application to Heroku. Go to your project settings by clicking on the settings icon in the projects dropdown.

Go to your project settings by clicking on the settings icon in the projects dropdown

You are on the Testing Setup screen now

Then navigate to the "Deployment" section.

You are on the Deployment Setup screen now

As we want to deploy to Heroku we click on the "Heroku" button.

Click on the Heroku button

Now you are asked to enter the name of your Heroku application and your API key. If you haven't already, now is the time to go to Heroku and create an application.

You are on the Heroku page now

I named my application "codefish-app", but please choose whatever name you like

Create your app and name it codefish-app

and create your app.

You successfully created your Heroku App

Back at your deployment configuration on the Codeship enter the application name.

Back on the Codeship we enter the application name codefish-app

To retrieve your Heroku API key, follow the link to your Heroku account and click "Show API key".

Click on the link to get your Heroku API key

Copy it and insert it into your deployment configuration at the Codeship.

Copy and paste the Heroku API key to the Codeship

Now save your deployment by clicking on the green checkmark on the right.

Save your deployment configuration by clicking on the green checkmark

From now on the Codeship will deploy your application to Heroku everytime you push to your GitHub repository. Let's push a change and see if it gets deployed. Change something in your application first,

Add a new paragraph you can then commit and push

then commit and push the change.

Commit and push the change

And immediately another build will start running on the Codeship. Let's go back to your project overview.

Go back to the project overview to see a new running build

After the commands we already know from your first build, your application also gets deployed to Heroku now.

After some initial commands were run your application gets deployed

And about 2 minutes later your application is online.

After about 2 minutes your application is online

When you open the URL of your Heroku app now, your deployed application appears. You can find mine on codefish-app.herokuapp.com.

Have a look at the app you just deployed

If you need help with setting up your own application, please use the support link in the top-right corner or please tweet us @codeship!

If you need help please click the support link in the top-right corner or tweet us @codeship

Set up Continuous Integration and Deployment for your node.js projects. The Codeship supports GitHub and BitBucket projects and about any techstack you can imagine.


Go ahead and try the Codeship for free! Set up Continuous Integration and Deployment for your GitHub and BitBucket projects in only 3 minutes.

More Stories By Manuel Weiss

I am the cofounder of Codeship – a hosted Continuous Integration and Deployment platform for web applications. On the Codeship blog we love to write about Software Testing, Continuos Integration and Deployment. Also check out our weekly screencast series 'Testing Tuesday'!

@ThingsExpo Stories
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
New competitors, disruptive technologies, and growing expectations are pushing every business to both adopt and deliver new digital services. This ‘Digital Transformation’ demands rapid delivery and continuous iteration of new competitive services via multiple channels, which in turn demands new service delivery techniques – including DevOps. In this power panel at @DevOpsSummit 20th Cloud Expo, moderated by DevOps Conference Co-Chair Andi Mann, panelists will examine how DevOps helps to meet th...
Every successful software product evolves from an idea to an enterprise system. Notably, the same way is passed by the product owner's company. In his session at 20th Cloud Expo, Oleg Lola, CEO of MobiDev, will provide a generalized overview of the evolution of a software product, the product owner, the needs that arise at various stages of this process, and the value brought by a software development partner to the product owner as a response to these needs.
SYS-CON Events announced today that A&I Solutions has been named “Bronze Sponsor” of SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 1999, A&I Solutions is a leading information technology (IT) software and services provider focusing on best-in-class enterprise solutions. By partnering with industry leaders in technology, A&I assures customers high performance levels across all IT environments including: mai...
SYS-CON Events announced today that Tappest will exhibit MooseFS at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. MooseFS is a breakthrough concept in the storage industry. It allows you to secure stored data with either duplication or erasure coding using any server. The newest – 4.0 version of the software enables users to maintain the redundancy level with even 50% less hard drive space required. The software func...
Most technology leaders, contemporary and from the hardware era, are reshaping their businesses to do software in the hope of capturing value in IoT. Although IoT is relatively new in the market, it has already gone through many promotional terms such as IoE, IoX, SDX, Edge/Fog, Mist Compute, etc. Ultimately, irrespective of the name, it is about deriving value from independent software assets participating in an ecosystem as one comprehensive solution.
SYS-CON Events announced today that EARP will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. "We are a software house, so we perfectly understand challenges that other software houses face in their projects. We can augment a team, that will work with the same standards and processes as our partners' internal teams. Our teams will deliver the same quality within the required time and budget just as our partn...
SYS-CON Events announced today that delaPlex will exhibit at SYS-CON's @ThingsExpo, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. delaPlex pioneered Software Development as a Service (SDaaS), which provides scalable resources to build, test, and deploy software. It’s a fast and more reliable way to develop a new product or expand your in-house team.
In his keynote at @ThingsExpo, Chris Matthieu, Director of IoT Engineering at Citrix and co-founder and CTO of Octoblu, focused on building an IoT platform and company. He provided a behind-the-scenes look at Octoblu’s platform, business, and pivots along the way (including the Citrix acquisition of Octoblu).
SYS-CON Events announced today that Outscale, a global pure play Infrastructure as a Service provider and strategic partner of Dassault Systèmes, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Founded in 2010, Outscale simplifies infrastructure complexities and boosts the business agility of its customers. Outscale delivers a secure, reliable and industrial strength solution for its customers, which in...
SYS-CON Events announced today that Outscale will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Outscale's technology makes an automated and adaptable Cloud available to businesses, supporting them in the most complex IT projects while controlling their operational aspects. You boost your IT infrastructure's reactivity, with request responses that only take a few seconds.
SYS-CON Events announced today that Systena America will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Systena Group has been in business for various software development and verification in Japan, US, ASEAN, and China by utilizing the knowledge we gained from all types of device development for various industries including smartphones (Android/iOS), wireless communication, security technology and IoT serv...
DevOps at Cloud Expo – being held October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA – announces that its Call for Papers is open. Born out of proven success in agile development, cloud computing, and process automation, DevOps is a macro trend you cannot afford to miss. From showcase success stories from early adopters and web-scale businesses, DevOps is expanding to organizations of all sizes, including the world's largest enterprises – and delivering real r...
Five years ago development was seen as a dead-end career, now it’s anything but – with an explosion in mobile and IoT initiatives increasing the demand for skilled engineers. But apart from having a ready supply of great coders, what constitutes true ‘DevOps Royalty’? It’ll be the ability to craft resilient architectures, supportability, security everywhere across the software lifecycle. In his keynote at @DevOpsSummit at 20th Cloud Expo, Jeffrey Scheaffer, GM and SVP, Continuous Delivery Busine...
In order to meet the rapidly changing demands of today’s customers, companies are continually forced to redefine their business strategies in order to meet these needs, stay relevant and continue to see profitable growth. IoT deployment and development is integral in this transformation, and today businesses are increasingly seeing the value of investing their resources into IoT deployments. These technologies are able increase ROI through projects such as connecting supply chains or enabling sm...
SYS-CON Events announced today that CollabNet, a global leader in enterprise software development, release automation and DevOps solutions, will be a Bronze Sponsor of SYS-CON's 20th International Cloud Expo®, taking place from June 6-8, 2017, at the Javits Center in New York City, NY. CollabNet offers a broad range of solutions with the mission of helping modern organizations deliver quality software at speed. The company’s latest innovation, the DevOps Lifecycle Manager (DLM), supports Value S...
SYS-CON Events announced today that Peak 10, Inc., a national IT infrastructure and cloud services provider, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Peak 10 provides reliable, tailored data center and network services, cloud and managed services. Its solutions are designed to scale and adapt to customers’ changing business needs, enabling them to lower costs, improve performance and focus intern...
Everywhere we turn in our industry we can find strong opinions about the direction, type and nature of cloud’s impact on computing and business. Another word that is used in every context in our industry is “hybrid.” In his session at 20th Cloud Expo, Alvaro Gonzalez, Director of Technical, Partner and Field Marketing at Peak 10, will use a combination of a few conceptual props and some research recently commissioned by Peak 10 to offer a real-world consideration of how the various categories of...
SYS-CON Events announced today that Super Micro Computer, Inc., a global leader in compute, storage and networking technologies, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Supermicro (NASDAQ: SMCI), the leading innovator in high-performance, high-efficiency server technology, is a premier provider of advanced server Building Block Solutions® for Data Center, Cloud Computing, Enterprise IT, Hadoop/...
With major technology companies and startups seriously embracing Cloud strategies, now is the perfect time to attend @CloudExpo | @ThingsExpo, June 6-8, 2017, at the Javits Center in New York City, NY and October 31 - November 2, 2017, Santa Clara Convention Center, CA. Learn what is going on, contribute to the discussions, and ensure that your enterprise is on the right path to Digital Transformation.