Building and shipping new features is hard work, and having something that blocks you during that process can be agonizing. Having a healthy workflow that doesn’t limit you is crucial when progressing your code from development to production.
Category Software Engineering
Ruby Versions Used in Commercial Projects in 2017
The Ruby community is famous for fast development of greenfield projects and quick acceptance of new concepts. However, it’s worth noting that a lot of mature projects such as GitHub, Shopify and Basecamp also operate with Ruby at their core. Every year we take the opportunity to check which versions of Ruby are used for […]
Continuous Delivery of Laravel Applications to Heroku
In this tutorial, we’ll be looking at Laravel applications and how to deploy them to Heroku. We will also set up Semaphore for continuous integration and deployment. Continuous integration is very important as it helps us make sure our test suite still passes after making changes to our code. Let’s get started. Prerequisites A Heroku […]
PHP Versions Used in Commercial Projects in 2017
PHP has been one of the top 10 most used languages for years, and it’s present on the server-side for the majority of websites accessible today. In this post, we’ll share with you our annual analysis of PHP versions used in commercial projects on Semaphore’s hosted Continuous Integration service. The majority of projects are using […]
Rails Testing Grader: Compare Your Test Suite to the Industry
Being able to compare the way you’re working to rest of the industry is usually both interesting and useful. This is why we created Rails Testing Grader, a new tool backed by anonymous, real-world data from Semaphore that lets you compare the state of your test suite and CI build to Ruby on Rails projects […]
Python Versions Used in Commercial Projects in 2017
Out of all programming communities, Python’s is the fastest growing one. Same as previous year, we’ll take the opportunity to check which Python versions are used for building real-world applications on Semaphore’s hosted CI service.
Integration Testing Your HTTP API with Cucumber
Learn how to write behaviour-driven development tests for your HTTP API using Cucumber, so that the entire business can benefit from them.
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?
Summary Overview 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 who are new […]