Today weβre happy to announce general availability of the Docker Light platform. Based on Ubuntu 16.04 LTS, the environment provides one physical CPU (2 vCPUs), 4GB of RAM and 10GB of disk space.
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 [β¦]
Rails Testing Antipatterns: Models
This is the second post in the series about antipatterns in testing Rails applications. See part 1 for thoughts related to fixtures and factories. Creating records when building would also work It is common sense to say that with plain ActiveRecord or a factory library you can both create and only instantiate new records. However, [β¦]
Rails Testing Antipatterns: Fixtures and Factories
In the upcoming series of posts, weβll explore some common antipatterns in writing tests for Rails applications. The presented opinions come from our experience in building web applications with Rails (weβve been doing it since 2007) and is biased towards using RSpec and Cucumber. Developers working with other technologies will probably benefit from reading as [β¦]
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.