Continuous integration (CI)
is confusing. As with all ideas, everybody does their own version of it in
practice.
Get a clear, concise summary of CI, continuous deployment and continuous delivery.
Understand how these practices complement each other,
and how they can help you develop robust software faster.

Thus far the only way you could add an environment variable to you project was
to include an export SECRET_TOKEN=abcd123 command in your build configuration. But
from now on you can use our project settings interface to manage your project's
environment variables.

We've recently upgraded MySQL 5.5 to 5.6 in our platform. Along with many performance and stability improvements, the new version also has strict mode turned on by default, which means it has stricter syntax and data validation checking. This, of course, is a good thing from your data's standpoint but it may also cause some unexpected errors in your builds.

As you have probably heard, a severe security bug in OpenSSL dubbed Heartbleed was uncovered on April 7th. It allows anyone to read 64k chunks of memory of the systems using the vulnerable versions of OpenSSL, leaving no trace in common system or server logs.

All Semaphore's current infrastructure is using OpenSSL and was thus affected and needed to be updated. Here's what we did and what we recommend you to do as well.

In this post we'll explore options for dealing with external resources when writing tests. Generally, a common solution is to use a mock instance of the resource that is not part of your system under test. It is however important to make sure that your mock, or stubbed response is a faithful copy and does not get out of date.