Learn how to write behaviour-driven development tests for your HTTP API using Cucumber, so that the entire business can benefit from them.
Working Away — Semaphore Team at Mokrin House
Since the Rendered Text team working on Semaphore is constantly growing, this month we spent two days at Mokrin House to get the entire team together and get to know each other better. We decided to spend half of our time working, and the other half on teambuilding activities, walking, biking, or whatever we felt […]
Semaphore and Nanobox – Continuous Integration the Easy Way
This post was written by Scott Anderson. It was originally published on the Nanobox blog. Semaphore is a continuous integration (CI) platform that runs your automated code tests and triggers specific actions based on the results. This article walks through how to use Nanobox and Semaphore to test your code and automate deployment.
Introducing the new Semaphore API
We’re happy to announce the release of Semaphore API v2. The new API brings greater clarity, improves usability, and fixes the key issues in API v1. This new version is a complete rewrite of our API, both in terms of functionality, and the underlying design principles. Why is Semaphore releasing a new API version? Semaphore […]
Continuous Integration and Delivery with Semaphore on GitHub Marketplace
We’re happy to announce that Semaphore’s continuous integration and continuous delivery service is now part of the GitHub Marketplace. GitHub is a key platform for millions of development teams, and it gathers one of the largest communities of developers. We’re proud to be one of the partners featured on their Marketplace. The Marketplace allows you […]
Continuous Integration with Docker Compose
If you take heed of any of the many reports relating to cloud-native computing, then you’d be forgiven for thinking that every organization, large or small, is well on the way to a microservices-oriented application nirvana.
Cancellation Strategy for the Default Branch
We’re happy to announce a new feature for a better control of your build queue — queued and started build cancellation strategy that ignores your default branch.
Test-Driving a Stream-powered Elixir Library
In this tutorial, we will test-drive an Elixir library and refactor it to leverage streams, while learning about Umbrella apps and handy testing techniques.
Continuous Deployment of an Elixir Phoenix Application to Heroku with Semaphore
Learn how to deploy an Elixir Phoenix app to Heroku and set up Semaphore to continuously deploy each time tests pass on the master branch.
Rails Techniques: Using Polymorphic Associations
Add flexibility to your Rails models using Polymorphic Associations – Active Record associations that can connect a model to multiple other models.
Faster Rails: Eliminating N+1 queries
N+1 queries are making your Rails app painfully slow. Learn how to eliminate them from your project.
Tips on Treating Flakiness in your Rails Test Suite
To say that flaky tests are annoying is to put it mildly. They can decimate both a developer’s time and productivity, are notoriously difficult to deal with, and are unfortunately a reality of software development. Our collegues have written more general posts in the past about dealing with flaky tests and why it is important. […]
Setting Up Continuous Integration for an Elixir Project Using Semaphore
This tutorial was initially published on DailyDrip. Read the original post here. Introduction What’s the point of writing tests if you aren’t going to ensure they’re always passing? It’s important to set up a continuous integration service very early in a project. In this tutorial, you will learn how to set up continuous integration for […]
What’s the Difference Between Continuous Integration, Continuous Deployment and Continuous Delivery?
View diagram in full screen Continuous integration, continuous deployment, and continuous delivery are like vectors that have the same direction, but different magnitude. Their goal is the same: make our software development and release process faster and more robust. The key difference between the three is in the scope of automation applied. What gets people […]
Consuming Services in a Docker Swarm Mode Cluster
Introduction This tutorial is the third in our series on container orchestration with Docker Swarm. The first tutorial covered how to bootstrap a Docker Swarm Mode cluster, and the second tutorial covered how to schedule workloads across a Swarm cluster. This tutorial explores the topic of service consumption, both from within and externally to a […]