The Shippable Blog

Setting up nightly builds on Shippable

Nightly builds means running an automated build for a project once a day, usually after the end of the day. It is often a good practice run automated builds every time you make some change to your codebase. These automated builds help you maintain a healthy code base.

Automated builds help in finding out a number of problems like:

  • A team member checked in something that breaks the codebase.
  • Your dependencies have changed and they break your code.
  • Your dependencies are broken.
  • Your build scripts or build machine is broken. 

Nightly builds ensures that you catch such problems within 24 hours of when they occur.

Docker in Continuous Integration: Part 3

A Docker image registry service makes it easy for developers to store, manage, distribute and deploy Docker images. Use a registry service to control the storing of your images, fully own your images distribution pipeline and integrate image storage and distribution tightly into your in-house development work flow.

This blog covers "Pushing a Docker image to a registry of your choice" scenario in the Docker in Continuous Integration (CI) series. We'll go over a simple example and look at advanced scenarios of using Docker images within CI and Continuous Delivery (CD) Pipelines.

Docker in Continuous Integration: Part 2

This blog explains "Build your own Docker image" scenario in the Docker in Continuous Integration (CI) series. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

We'll go over the reasons to build your own Docker image, steps to do so and an example to follow along.

Docker in Continuous Integration: Part 1

This blog series covers three Docker in Continuous Integration (CI) scenarios. A CI process combined with immutable Docker images expedites delivering software changes. Shippable makes it easy for you to use Docker images in your CI process, without a separate DevOps tool or code. The three scenarios covered in this series are:

  1. Use an existing Docker image
  2. Build your own Docker image
  3. Push a Docker image to a registry of your choice

In this blog, I'll cover the first scenario.

How to be a great DevOps Engineer

Companies today have realized the immense value of adopting DevOps principles in accelerating software releases. After all, whoever innovates fastest wins, and frequent software updates are key to faster innovation.

What is DevOps?

The term Devops was coined as a combination of DEVelopers and OPerationS. According to Wikipedia:

DevOps is a term used to refer to a set of practices that emphasize the collaboration and communication of both software developers and information technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.

Every company today, regardless of industry, is under pressure to be great at developing and delivering software. This is because software is disrupting every type of business, from taxi services to food delivery to retail. Unless you transform your business and go through a digital transformation, your business is likely to die in the next few years.

Once you start this digital transformation, the next challenge is to innovate fast enough to survive and maybe win.  This is where DevOps comes in. Most companies have figured out how to accelerate software development through agile principles. However, the bottleneck is now software delivery. What is the point of producing code at a faster rate if you can't ship it out as quickly?

DevOps sets out to solve this problem by combining cultural change with end to end software delivery automation. The goal of DevOps is to ensure frequent, predictable, error-free software releases that helps you innovate faster.