Integrating Node Applications with GitHub

In this course, you will learn to test files automatically with Travis, how to deploy GitHub repositories automatically with Trello, and much more.
Course info
Rating
(27)
Level
Beginner
Updated
Aug 5, 2016
Duration
1h 43m
Table of contents
Course Overview
Integrating NodeJS Applications with GitHub
Integrating Node Applications with Travis CI and GitHub
Deploying GitHub Branches Automatically with Cloud-based Deployment Software (Heroku)
Automatically Creating Issues and Managing Repos with Discussion Board Software (Trello)
Integrating Custom Node.js Webhooks with GitHub
Conclusion
Description
Course info
Rating
(27)
Level
Beginner
Updated
Aug 5, 2016
Duration
1h 43m
Description

With the pace of development on the internet increasing each year, developers need a way to manage NodeJS applications that will keep them ahead of the pack. This course, Integrating Node Applications with GitHub, will help you not only learn a variety of skills that will help in any workplace that uses GitHub, but many advanced techniques that can be used to deploy your own applications, or contribute outstandingly to your place of business. You'll learn how to integrate your GitHub projects with Travis CI, which will let you know well in advance if there are any errors, and can be integrated with other applications to allow for error-free deploys. Next, you'll learn to deploy your NodeJS application using Heroku. Deployment of Node applications can be extremely challenging, but this course makes it simple and easy enough to be accomplished in a few short videos. Lastly, you'll learn how to set GitHub up with Trello, which facilitates professional discussion between workers and clients. After completing this course, you'll be ready to interact with GitHub projects in the workplace and independently much more effectively.

About the author
About the author

Daniel Stern is a freelance web developer from Toronto, Ontario who specializes in Angular, ES6, TypeScript and React. His work has been featured in CSS Weekly, JavaScript Weekly and at Full Stack Conf in England.

More from the author
Vue.js: Big Picture
Beginner
1h 6m
Aug 31, 2018
Testing React Applications with Jest
Intermediate
3h 36m
May 11, 2018
More courses by Daniel Stern
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi, I'm Daniel Stern and I'd like to tell you about my new course on Pluralsight Integrating Custom Node. js Applications with GitHub. I'm extremely excited to be presenting this course as it's full of information any developer would consider highly practical and useful for everyday situations. GitHub is a tool used by corporations and independent developers alike to create more reliable code and collaborate efficiently. In this course, we'll learn to augment the GitHub experience by integrating it with other productivity tools. We'll start off by learning to integrate GitHub with Travis CI. An essential tool for any team which makes it possible to send error-free code to production every time. We'll then learn how to integrate our repository with Heroku. GitHub-Heroku integrations are some of the most powerful of all as they'll allow us to deploy our app to the web live with every commit and allow us to use our custom Node. js back-end. We'll also learn how to connect GitHub to Trello so as to better connect with our clients and teammates. We'll even cover WebHooks an advanced tool that you can use to create your own integrations. All in all, I'm very proud to be presenting this course and I hope that by watching it you can improve your productivity and take your Node. js apps to the next level.

Integrating NodeJS Applications with GitHub
Hello, I'm Daniel Stern and welcome to integrating Node. js Applications with GitHub. GitHub is an extremely popular and useful tool that's used not only by independent developers but by large organizations all over the world. There's no question that GitHub is the industry standard for managing and organizing your large projects. But is there a way for us to integrate our Node. js applications more closely with GitHub? Is it possible for us to leverage some of that online technology to increase our productivity? The answer is yes. Whether you're implementing, testing, or deployment or communications, integrations with GitHub can all greatly increase your productivity. I've worked with GitHub for many years, and in addition to having worked with it in many large companies, I've also taken the time to make several of my own public repositories, many of which have over one hundred stars. I've definitely spent the time it takes to learn about GitHub, and now I'm going to share my knowledge of my favorite integrations with you. All in all, it will be a great course, so please stick with us.

Integrating Node Applications with Travis CI and GitHub
Alright, welcome back. In this module, we'll begin integrating our application with GitHub. Starting with Travis Continuous Integration Software. So what is Travis? Travis CI stands for Travis Continuous Integration. In other words, continuous when it's happening all the time morning, noon, and night. And integration, as in something where every piece of the whole works together. Software, in other words is an application that tests your software all the time. When you can't, when it's necessary it runs the tests and integrates them into your work flow. So Travis is very popular with large teams. It makes more sense as a tool for a large team with dozens of developers than just for a single developer. As teams grow, the complexity of builds increases to the point that it's no longer possible for one developer to fully understand it and perform it without any errors time and time again. In technical terms, what Travis CI does is when you make a push to Git it goes ahead and clones your Git repository. It then builds your repo and runs it on its own servers. It checks the results of this running against the tests that you've specified. And if everything works, the test passes. GitHub can then see if that test has passed using the built in API. So to conclude, Travis is a very exciting continuous integration software. And we're going to be implementing it into our application this module.

Automatically Creating Issues and Managing Repos with Discussion Board Software (Trello)
Welcome back. In this module, we're going to discuss integrating GitHub with discussion board software. The software we're going to be using in question is Trello, but the ideas in this course do apply to any other discussion board software which supports GitHub. So what is Trello and what can we learn from it and other discussion board softwares? Well, basically all discussion board softwares, at least in the context of a team, are designed to facilitate discussion between teams and clients. So if there's a big project being worked on, say a website, the team's going to want to be able to talk both with themselves and with clients in some sort of way that keeps records in a clean manner. Discussion board software is ubiquitous, whether we're talking about JIRA or Trello or Slack or any number of upstarts or competitors, almost every big team uses discussion boards. This is especially common in agile development, where each card in the discussion board will represent a card in an agile work cycle. And so by extension, almost all discussion board softwares can help manage an app's development over time. As an app gets older, there become hundreds or thousands of stories and issues that become archived. By keeping all the discussion regarding your app in one place, you can easily take a look back at its development and see what things you can learn. All in all, a discussion board is much more than just a forum or a place to put messages. It really is a tool that companies use to manage their entire projects.

Integrating Custom Node.js Webhooks with GitHub
In this chapter, Integrating Custom Node. js Webhooks with GitHub, we'll actually write our own webhook that we're going to use to interact with our repository. All of the integrations we've viewed so far, Heroku, Travis, those have all used webhooks under the scenes to actually make what they do happen. And now we're going to do that ourselves with GitHub. So, what is a webhook? Webhooks are actually fairly simple things. Now basically when a webhook is used the transmission of some form of structured data, be it JSON or XML, happens to a specific URL. The URL contains a custom listener script. This script is listening for the webhook to call it. When the script is called by the webhook, or the transmission of JSON data, then custom code that you've written can occur. The whole idea is similar to the event callback architecture seen in JavaScript, where a callback is passed to a function and only executed when the function calls that callback at the end of its functioning.

Conclusion
Alright, let's wrap up this course. Making this course has been really exciting for me, since all the GitHub Integration we've worked with are just so practical. Almost all integrations, including all the ones we've covered have tons of real business applications. So to contrast with some other talks, that are mostly theory, this course is something that you can definitely apply right away to streamlining your business goals and projects. So let's review the Integrations, that we had a look at very quickly. First, there's Travis and Travis runs our tests and integrates with other softwares, so for example, when we also used Heroku, Heroku integrated itself automatically with Travis to not deploy anything, if there were errors in the build. Travis is the cornerstone of any integration and you'll find it integrated with almost every GitHub application, which is serious on an enterprise level. Next Heroku deploys our applications, so we have our application, which runs on our local Node server, but it's complicated to deploy something like that to the internet, so not only can Heroku deploy those things, but it can integrate directly with our GitHub to do it automatically. It also lets us review our pull requests, without ever affecting our production application. Next Trello allows us to discuss all of this, Travis and Heroku in an environment that's linked with GitHub, so nodes of branches and pull requests can appear automatically and be updated in real time right on a Trello card. Integrations like this increase organization and add confidence to clients. Finally we learned about Webhooks. Webhooks, which can be used for nearly any purpose, are easy to write and can be implemented in just a few minutes, however they provide lots of granular, low-level control and they're not recommended, if there's already something which will do that for you.