How-tos

Continuous Delivery and your GitHub repo

Share this post:

In 2015, I shared the great things IBM® Bluemix® DevOps Services can do for you and your favorite GitHub repo. Since then, the DevOps Services team has taken the best of DevOps Services and rebuilt it as IBM Bluemix Continuous Delivery, with even more and better GitHub integrations for you and your team. By making your repo a part of a Continuous Delivery toolchain, you can automatically build and deploy your code to Bluemix, trace your changes from commit to your deployment targets, edit your code in a fully functional browser-based IDE, and gain valuable insights into your code and your development team. Let’s take a look at each of these capabilities.

Delivery Pipeline

With this toolchain, I’m developing a simple Node.js app for checking the weather.

Sample toolchain for weather app
My code is stored in a GitHub repo, and I’m tracking my work in the same GitHub project. I use Delivery Pipeline to automatically build, test, and deploy my app to Bluemix.
Sample delivery pipeline

Delivery pipeline with four stages and two deployment targets

With my pipeline, I can organize the continuous delivery of my app into several stages, each consisting of one or more discrete jobs. The BUILD stage grabs my latest code changes and runs a set of unit tests against the code. If the tests pass, the pipeline proceeds to the STAGING stage and deploys my app to my staging environment on Bluemix. FVT tests are then run against the deployed app. If everything succeeds, I use a Deployment Risk gate from DevOps Insights to decide whether it’s safe to proceed to production based on predefined criteria. My criteria are that all critical tests must pass and that code test coverage must show no regressions. My pipeline automatically deploys to production when the GATE stage passes. If I want to add another layer of checking, I can configure my PRODUCTION stage to run manually only.
As you can see, Delivery Pipeline is the way that my app goes from code in GitHub to live on Bluemix. I can make this path as simple or as complex as my app requires. For more information about Delivery Pipeline, see Working with Delivery Pipeline.

Change traceability

Because I enabled the option to track the deployment of code changes when I configured my GitHub repo in my toolchain, I can trace the flow of my code changes to Bluemix. As Delivery Pipeline deploys my changes, the commits are tagged with an indicator of where they were deployed and the time of the deployment. Likewise, the linked issues are automatically labeled to indicate where they were deployed.
Commit tagged with deployment details

A commit tagged with deployment details

Linked issue labeled with deployment targets

A linked issue labeled with deployment targets

Web IDE

By adding the Eclipse Orion Web IDE to my toolchain, I can make changes to my GitHub repo directly from my browser. You might be thinking “I can already do that directly at github.com,” but with the Web IDE, you get a rich development environment that provides content assist, tooltips, previews, validation, and syntax highlighting for JavaScript, HTML, CSS, and Markdown files. Your full development workspace is on the cloud rather than on your desktop so thatyou can develop code wherever you are, even if you forget your laptop at home.
Editing GitHub repo in Web IDE

DevOps Insights

By adding DevOps Insights to my toolchain, I used the Deployment Risk gates that you read about earlier. When I also allow DevOps Insights to analyze my GitHub repo and issues, I can gain developer and team insights. As you can see from this example, I’m not doing a great job of linking my commits to issues, and I need to make
sure that I’m keeping my code changes quick and small. I can also identify risky, defect-prone files and make sure that I reduce the number of those files over time.
Three charts showing linkless commits, big commits, defective files

Developer Insights: Developer Best Practices

I can also ensure that my team is properly balanced, with developers contributing equally where appropriate and collaborating on code. I can use this data to determine where it might make sense to cross-train developers or assign mentors to new developers.
Graph showing contributions and interactions between developers

Team Dynamics: Social Coding

Next steps

Ready to try Continuous Delivery? Head to https://cloud.ibm.com/devops, where you can choose from several templates to create a toolchain. Be sure to also check out the Create and use a microservices toolchain with DevOps Insights tutorial on the IBM Cloud Garage Method website. If you’re feeling adventurous and want to jump in with your own repo, click Get Started and click Build your own toolchain to build a toolchain from scratch. You’ll discover many other tools in the tool catalog that you might want to add to your toolchain.
Don’t have a GitHub.com account? You have options, too. If your company has its own GitHub Enterprise, we can connect your GitHub Enterprise instance to Continuous Delivery in your Bluemix Dedicated environment. In addition, GitHub Enterprise is available as a service to Bluemix Dedicated users, hosted and managed by IBM. Last but not least, you can use Git Repos and Issue Tracking and let IBM host your source and issues for your tool chain on Bluemix Public. Git Repos and Issue Tracking is built on GitLab Community Edition. Check it out by following the Create and use a microservices tool chain with DevOps Insights (v2) tutorial.
More How-tos stories
May 1, 2019

What’s Included in the IBM Cloud Developer Tools Version 2.2.0

I’m pleased to announce the latest version of IBM Cloud Developer Tools CLI, which contains some exciting new features.

Continue reading

April 26, 2019

Help Shape the Future of Cloud Foundry

Are you a Cloud Foundry user? If so, here's your opportunity to influence the future of Cloud Foundry with the 2019 user survey.

Continue reading

April 25, 2019

Develop in Public Cloud, Deploy Anywhere with IBM Cloud DevOps

In this article, we explore how to deploy multicloud apps developed with IBM Cloud Continuous Delivery to a network-accessible IBM Cloud Private installation.

Continue reading