State of the Mac Builds

Henrik Hodne's Gravatar Henrik Hodne,

Hello everyone! It’s been almost half a year since we shipped Mac, iOS and RubyMotion testing (time really flies, doesn’t it?). Since then we’ve had almost 30,000 Mac builds on travis-ci.org and nearly 13,000 Mac builds on travis-ci.com.

I’d like to take a moment to address some of the instability we’ve been having lately, and what we’re doing to improve. On September 24th we started noticing issues with our Mac infrastructure, causing delays in Mac and iOS builds. We had noticed earlier that sometimes the VMs get stuck in a suspended state, which causes us to be unable to boot new VMs. Fortunately, fixing this is very easy, but does require manual intervention on our end.

We’ve seen this very issue show up more often lately, and while we haven’t found the exact cause of the issue, we’re working with our infrastructure provider to pin-point it. In the meantime, we’re going to be adding better monitoring and alerting for the Mac infrastructure, which up until now has been lacking and causing us to be unable to discover issues early on.

Unrelated to this issue, we will be having some downtime for the Mac infrastructure tomorrow, September 28th 2013 at 5:30 PM CEST. Our infrastructure provider is moving to a different data center, which means we’ll have to take the Mac builders offline when they are being moved. We expect the move to take no longer than two hours. We’ll stop accepting new Mac builds at 5:30 PM and then let the existing ones finish until 6:00 PM, at which point we’ll take the workers offline and begin the move.

We are also working on getting the VMs’ version of Mac OS X updated so we can install Xcode 5 and allow building iOS 7 projects. Stay tuned!

Update: Our Mac infrastructure provider will be performing some additional upgrades tomorrow at 7:00 PM CEST. The downtime should not be longer than two hours, although we’re aiming for a much shorter downtime than that.


Deploy to the Engine Yard Cloud from Travis CI!

Mathias Meyer's Gravatar Mathias Meyer,

Today we’re happy to announce continuous deployment support for the Engine Yard Cloud!

Engine Yard has been an incredible supporter of Travis CI, and we’re very grateful to count them amongst our customers. We’re very excited that you can now deploy your code from Travis CI to their cloud platform.

Getting started is easy. Sign up for an account with Engine Yard, if you haven’t already, your first 500 hours are free!

Once your project is set up, configure the application in your .travis.yml:

deploy:
  provider: engineyard
  api_key: <key>

We recommend encrypting the key in your .travis.yml.

Alternatively, you can use username and password:

deploy:
  provider: engineyard
  username: roidrage
  password: kittens!

You can customize the environment to deploy to if you happen to have your app deployed to multiple environments:

deploy:
  provider: engineyard
  environment: kittens_production

For the all the gory details on the available options, check out our documentation.

Deploying to the Engine Yard Cloud is available for open source and private repositories today!

Happy shipping!


Improve Your Code Quality: Tracking Test Coverage with Travis CI and Code Climate

Mathias Meyer's Gravatar Mathias Meyer,

With continuous integration and unit testing, tracking how much of your code is covered by tests comes as natural requirement to detect code that could break. One could go as far as considering low test coverage a code smell.

The less of your code is covered by tests, the higher the chance that something will break as features are added, as code changes, as code is refactored.

Our friends at Code Climate set out to build a tool that allows you to track your code’s quality over time. If you’re working on kind of Ruby project, and you haven’t already, you need to check them out. (sssh: rumor has it they’re working on JavaScript support, but if anyone asks, you didn’t hear it from us!)

Today, we’re thrilled to be a part of their newest feature addition: making test coverage an integral part of measuring code quality on their platform.

This new test coverage tracking integrates neatly with your builds on Travis CI with a few simple steps.

When integrated, here’s the view you’re getting. You can see how coverage for our controller handling Stripe subscriptions needs to be improved, but now we can actually see it.

Code Climate tracks any changes in coverage over time, showing you and telling you when things got better or when they got worse.

To get started, all you need to do is sign up for a Code Climate account and one for Travis CI too, and follow these steps:

  1. Add the codeclimate-test-reporter to your Gemfile:

    gem "codeclimate-test-reporter", group: :test, require: nil
    
  2. Add the following lines to your spec_helper.rb or test_helper.rb, at the very top:

    require "codeclimate-test-reporter"
    CodeClimate::TestReporter.start
    
  3. Add the Code Climate repository token to your .travis.yml:

    addons:
      code_climate:
        repo_token: 1213....
    
  4. Ship code!

You’ll find these steps in the settings for your repository on Code Climate as well and on the repositories on Travis CI.

As a Travis CI customer, we have a special deal for you as well to get started on Code Climate.

Please note that you need a paid subscription to Code Climate for both your private and open source projects.

We’re happy to be a partner in Code Climate’s new offering!