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 […]
Category Software Engineering
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 […]
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 […]
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 […]
Working Effectively with Data Factories Using FactoryBot
This tutorial has been updated by Thiago AraΓΊjo Silva on 20 April 2018. Introduction In test-driven development, data is one of the requirements for a successful and thorough test. In order to be able to test all use cases of a given method, object or feature, you need to be able to define multiple sets […]
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 […]
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 […]
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 […]
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. Kajabi is a SaaS company positioned squarely […]
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 […]
Easier Secrets Management Through the Semaphore UI
Manually adding shared environment variables and configuration files between projects can be time consuming and error prone, especially for organizations with many projects. Secrets are a way of storing and grouping that sensitive data. Semaphore now allows you to create and manage secrets through the UI.
On Building a React Native CLI
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 Gant Laborde, a member of the Ignite team […]
7 Ways Continuous Delivery Helps Build a Culture of Learning
At the heart of continuous delivery is a fast feedback loop that immediately shows developers the effects of their work. Mistakes are found and fixed quickly, while beneficial changes can be released and deployed to customers without having to wait for a distant future release date. This rapid feedback helps build an organizational culture of […]