Two Key Docker Benefits and How to Attain Them

In 2013, Solomon Hykes showed a demo of the first version of Docker during the PyCon conference in Santa Clara. Since then, the benefits of Docker containers have spread to seemingly every corner of the software industry. While Docker (the project and the company) made containers so popular, they were not the first project to leverage containers out there; and they are definitely not the last either. Editor’s note: This…

CI/CD Pipeline: A Gentle Introduction

Do you want your engineering team to deliver bug-free code at high velocity? A fast and reliable CI/CD pipeline is crucial for doing that sustainably over time. What is a CI/CD pipeline? A CI/CD pipeline helps you automate steps in your software delivery process, such as initiating code builds, running automated tests, and deploying to a staging or production environment. Automated pipelines remove manual errors, provide standardized development feedback loops…

CI/CD for Microservices on DigitalOcean Kubernetes

Semaphore gives you the power to easily create CI/CD pipelines that build, run and deploy Docker containers. DigitalOcean recently introduced a managed Kubernetes service which simplifies running cloud-native applications. Together, they’re a great match for productive software development. In this article we’ll show you how to connect these two services together in a fast continuous delivery pipeline. What we’re building We’ll use a Ruby Sinatra microservice which exposes a few…

Why Cloud Native Success Depends on High-Velocity CI/CD

Article originally published on The New Stack. The goal of every tech leader is to deliver bug-free products to customers at high velocity. Today’s cloud-native technology can empower engineering teams to iterate, at scale, faster than ever. But teams that don’t also change how they deliver software will struggle to benefit from the agility and speed to deployment that cloud native can offer.

Continuous Delivery Patterns with Serverless Applications

Adoption of serverless technology is surely growing, with emerging product companies who built on top of it. One of them is CloudZero, a Semaphore customer, who recently wrote a detailed article about their experience in achieving continuous delivery for their all-serverless system.

A Practical Guide to Test Doubles in Elixir

Introduction In this tutorial, we’ll be looking at one of the main use cases for test doubles in Elixir: aiding in the interaction between domain logic and impure components that exist over the boundaries of an application. Tests relying on such components are usually brittle, and need to reach out to external resources whose state may be foreign and unpredictable, thereby causing slowness and sometimes making tests fail unexpectedly. Classic…

Rails Testing Handbook Available for Kindle

In April, we officially released Rails Testing Handbook, a free ebook in which our engineers shared how to write tests and practice BDD to develop sustainable Rails applications. The handbook teaches you all you need to know about the BDD approach of analyzing, testing, coding, and designing a system in one short feedback loop. BDD helps us produce better software, while also avoiding mistakes and wasteful work. You can now…

Doubled Free CI/CD Capacity for Open Source

At Semaphore, for years we’ve been happy to support open source projects with a free continuous integration service. Today we’re increasing the free CI/CD capacity on all open source organizations from 2 to 4 Boxes.

Faster Rails CI with Automated Parallel Testing Available to All

Earlier, we launched Semaphore Boosters, a feature that allows you to automate parallelizing your RSpec and Cucumber tests in a few clicks. The feature has helped many teams to reduce their Rails CI build times by as much as 2 hours in some cases. Initially, the feature was available only to some users. It has now matured with the help of our users, and due to high interest we’ve decided…

Setting up a BDD Stack on a Rails 5 Application

This post is adapted from Rails Testing Handbook, a free ebook on building sustainable Rails apps with BDD. In this tutorial, we will guide you through the process of generating a new Rails 5 application, with all the necessary tools to set up a behavior-driven development (BDD) flow. We will set up 5 tools that represent the base of BDD development in Rails: RSpec for writing unit test, Cucumber for…

Running Applications on a Docker Swarm Mode Cluster

Introduction This tutorial is the last in a series of tutorials concerning the container orchestration tool, Docker Swarm. In this series, we’ve already seen how to establish a Swarm cluster, schedule services to the cluster’s nodes, make those services consumable from within and outside the cluster, and update and rollback services in-flight. We’ve mainly focused on the theory associated with a Swarm cluster, so in this final tutorial, we’ll get…

Lies, Damn Lies, and the State of Testing in Rails

Ruby on Rails was the first major web framework to include automated tests as part of every new project. The effects have been enormously positive. Many developers have learned to write tests well, which in turn helped them get better at design. Experienced developers were drawn by Rails’ focus on productivity and beautiful code. Their community activities have helped push the craft of web development forward. Over the years positive…

Rails Testing Handbook: A Free Ebook to Help You Build Better Apps

Bugs and messy code slow down development, and can make complex projects fail. We write code with good intentions, but in practice as complexity increases we need a system to help us avoid problems. This is where BDD (Behavior-driven Development) can make a huge difference: it provides us with a sustainable process for continuously producing high-quality software, with clean code and automated tests as a side effect.

How to Deploy Rails Applications With Ansible, Capistrano and Semaphore

Introduction In this tutorial, we’ll cover how to create a server with Amazon Web Services, do configuration management with Ansible, deploy Rails applications with Capistrano, and how to do continuous integration with Semaphore. All the code from this tutorial is available in a repository on GitHub. If you get stuck, you can always compare it against the code in there which is known to work. Before we jump into creating…

PhantomJS Is Dead, Use Chrome Headless in Continuous Integration

If you’ve been using PhantomJS for continuous integration, please switch to Headless Chrome. Semaphore provides recent versions of both Chrome and chromedriver preinstalled out of the box.

How Kajabi Got to a 10-minute CI Build for 100k Lines of Rails Code

This is a guest post by Brendon Murphy, CTO at Kajabi. Read it to find out how Kajabi got to a 10-minute CI build for 100k lines of Rails code and got rid of tedious manual test suite balancing with Semaphore Boosters, fully automated parallel CI for Rails.

Docker Image Size – Does It Matter?

Does Docker image size matter? The answer I usually hear is “yes”.The logical question that follows is “why?”. I’ve heard the following two answers too often for my liking: A smaller image takes less disk space. A large image is difficult to upload. It takes a long time. Although both these statements sound like they make sense, neither is generally true.

Testing Middleware in Laravel with PHPUnit

Introduction In this tutorial, we will show you how to test middleware in Laravel applications. If you are not familiar with the concept of middleware, it acts as a middle man between a request and a response. It’s a type of filtering mechanism. Using the AuthMiddleware in Laravel as an example, users who are not logged will always be redirected to the login page when trying to make requests which…

1 2 3 12