Keeping Logs Available When Rebuilding a Build Flaky tests can be hard to track down. When you are working on a new feature, your builds can fail because of one or a few unrelated flaky tests. Igor Šarčević 6 Jan 2017
Top 10 Semaphore Community Tutorials in 2016 As 2016 is approaching its end, it’s time to look back and see what we’ve accomplished this year. Our team of Semaphore developers, community writers and editors are big on learning new things and sharing knowledge, so we made sure to publish at least one new tutorial or article on BDD, testing tools, automating DevOps […] Dunja Radulov 29 Dec 2016
Ruby 2.4.0 Available In a Minor Platform Update Ruby 2.4.0. We just released an incremental platform update, versioned 1611.1, adding several new languages to the platform. Ervin Barta 27 Dec 2016
Unit Testing Chef Guard Clauses: Command Strings vs. Ruby Blocks Post originally published on David Pell. Republished with author’s permission. Chef Guards The great thing about the major Chef resources (file, directory, package, etc.) is that they’re idempotent, meaning that they will produce the same effect if executed more than once. Chef takes care of this under the hood. If, however, you find yourself needing […] David Pell 21 Dec 2016
Building and Testing an API Wrapper in Python Introduction Most websites we use provide an HTTP API to enable developers to access their data from their own applications. For developers utilizing the API, this usually involves making some HTTP requests to the service, and using the responses in their applications. However, this may get tedious since you have to write HTTP requests for […] Kevin Ndung'u Gathuku 14 Dec 2016
Lightweight Docker Images in 5 Steps Deploying your services packaged in lightweight Docker images has many practical benefits. In a container, your service usually comes with all the dependencies it needs to run, it's isolated from the rest of the system, and deployment is as simple as running a docker run command on the target system. Igor Šarčević 13 Dec 2016
Getting Started with BDD in Go Using Ginkgo Introduction Over the past few years, Go has developed into the language of choice for many types of applications. Its popularity can be attributed to several factors, out of which its testing story is a prominent one. Out of the box, Go comes with a great package for testing. This tutorial will explain how you […] Kulshekhar Kabra 7 Dec 2016
Activity Monitor: Visualizing Your Team’s Running CI/CD Processes Growth always has its challenges. With more developers, there are more ongoing projects, branches and CI builds. And sometimes while you work, you find yourself wanting to know what else is in the pipeline on Semaphore. Marko Anastasov 2 Dec 2016
PHP Versions Used in Commercial Projects, 2016 Edition As in earlier reports on other languages (see Ruby, Node.js, Python), today we’re sharing data from Semaphore about usage distribution across versions of PHP in active private projects. Marko Anastasov 1 Dec 2016
Testing Common Redux Patterns in React Using AVA Introduction This is the second tutorial in our series on testing React and Redux applications. If you haven’t read the first part, we encourage you to do so. Redux is a library for managing state in React applications. Since the code using Redux is composed of many small pieces, it’s very easy to test it. […] Matija Marohnić 30 Nov 2016
How to Capture All Errors Returned by a Function Call in Elixir If there is an Elixir library function that needs to be called, how can we be sure that all possible errors coming from it will be captured? Elixir/Erlang vs. Mainstream Languages Elixir is an unusual language because it functions as a kind of a wrapper around another language. It utilizes Erlang and its rock solid […] Predrag Rakić 24 Nov 2016
Continuous Deployment of Golden Images with Packer and Semaphore In this tutorial, we’ll introduce you to Packer and its use cases. It covers using Packer to build an Amazon Machine Image (AMI) and deploying the application to AWS with a load balancer and autoscaling group. Prerequisites This tutorial involves a few mandatory tools and assumes a few things. You’ll need the following to complete […] Adam Hawkins 23 Nov 2016
Dockerizing a Java Play Application Introduction In this tutorial, we will learn how to run a Java Play application as a Docker container. Docker is a software containerization platform. It uses containers instead of hypervisors for a number of reasons. First of all, containers are lightweight and they have a lower memory footprint. Secondly, containers virtualize the operating system while […] Bengi Egima 16 Nov 2016
Platform Update on November 22nd The upcoming platform update is scheduled for November 22nd, 2016. Chromedriver gets and update with version 2.25. Git has been updated to version 2.10.2. Ervin Barta 15 Nov 2016
Python Versions Used in Commercial Projects, 2016 Edition In October we shared data on which versions of Ruby and Node.js developers use to get the job done. Next up is a report on Python, for which the main question is binary — is it Python 2 or 3 that developers use at work today? Marko Anastasov 11 Nov 2016