What is Proper Continuous Integration?

Marko Anastasov · Engineering

Continuous integration (CI) is confusing. As with all ideas, everybody does their own version of it in practice. Get a clear, concise summary of CI, continuous deployment and continuous delivery. Understand how these practices complement each other, and how they can help you develop robust software faster.


This is a guest post by Kendal Miller, Senior Engineer at par8o. Read it to discover how par8o reduced build time from over 2 hours to 13 minutes with Semaphore Boosters, fully automated parallel CI for Rails.

par8o is a platform designed for healthcare teams to coordinate, communicate, and close the loop on patient referrals - for better relationships with providers and patients. par8o also offers a chat platform to encourage office-to-office and referral communication for quicker results.

The referral portion of par8o is a large application built with Ruby on Rails and AngularJS. It is configurable to support the workflow needs of different organizations. The application is also used to integrate with other healthcare systems.

The engineering team at par8o takes testing seriously and uses MiniTest for unit and controller tests and RSpec for browser testing. We use a development workflow that is very similar to the GitHub workflow, but instead of merging to master after a story has been verified in production, we merge to master once a story has been verified in our QA environment by our quality assurance team.


From Tuesday, December 12 until Sunday, December 17, the Semaphore build cluster suffered from sporadic network instabilities due to a faulty device at a Tier 1 network provider. We know how much you rely on Semaphore, and our top priority is to provide a reliable service. To the customers that were affected: we are deeply sorry for the instabilities that you were facing during these days. In this post, we will share what were the technical details and challenges that we faced, the steps we took to resolve the issues, and what we plan to do to prevent similar issues from happening in the future.


Alaban Crequy of rkt

In the Developer Interview series, we talk to engineers who use Semaphore. We pick their brains about how they work, what wisdom they would like to pass on, and the most challenging problems they’ve faced during development.

This time around, we had the pleasure to talk to Alban Crequy, a member of the team working on the rkt container engine and the co-founder and CTO at Kinvolk GmbH.


Semaphore CLI: Forming a Base for a Programmable Semaphore

Being able to control your CI pipeline programmaticaly, tweak and bend it to your will, is a huge benefit for both small and large organizations. This is why we have deprecated our old API v1 and introduced a new API v2, and this is why we are now introducing a command line utility.

The Semaphore Command Line Interface (CLI), is a tool for creating and managing Semaphore projects from the command line.


Continuous Deployment for Firebase using Semaphore

This is a guest post by Abe Haskins, a Firebase engineer at Google. For the past five years, Abe has been helping engineers build Firebase-powered things to help them take over the world.

Firebase has you covered when it comes to building and architecting your app, but what about deploying your projects onto Firebase? Until now that’s been a manual process done via firebase-tools (the command-line interface for Firebase), but now we can use the power of Semaphore to create an entirely automated continuous deployment process.


The Node community is constantly expanding and enterprises are adding it to their stacks, because they can use the same language throughout the entire stack. This year, the Node.js Foundation released the results of a survey which identified how and on which projects people use it. One thing they haven't covered are the versions of Node.js used in projects, which we'll do in this post. This is our our third annual analysis of Node.js versions used in projects on Semaphore's hosted CI/CD service.

Node.js versions used for new commercial projects on Semaphore in 2017


Track Total Weekly CI/CD Waiting Time with Speed Insights

Building and shipping new features is hard work, and having something that blocks you during that process can be agonizing. Having a healthy workflow that doesn't limit you is crucial when progressing your code from development to production.

Semaphore is all about smoothening the gap between pushing changes to version control and seeing those changes in production. Sometimes, that gap can be widened by the time developers are waiting for builds and deploys to start. We built Speed Insights for organizations to address this.


The Ruby community is famous for fast development of greenfield projects and quick acceptance of new concepts. However, it's worth noting that a lot of mature projects such as GitHub, Shopify and Basecamp also operate with Ruby at their core. Every year we take the opportunity to check which versions of Ruby are used for building real-world applications. The data is based on private projects which are tested and deployed on Semaphore's hosted CI/CD service.

Ruby versions used for new commercial projects on Semaphore in 2017


1 2 3 4 5 6 7 8 9 10 11

Occasional lightweight product and blog updates. Unsubscribe at any time.

© 2009-2019 Rendered Text. All rights reserved. Terms of Service, Privacy policy, Security.