Status update on the Xcode 6 and iOS 8 rollout

Henrik Hodne's Gravatar Henrik Hodne,

It's been nine days since Xcode 6 was released, and I wanted to give you an update on what we've been doing to get it rolled out to you.

We started working on this as soon as Xcode 6 was out, but had some issues booting up and connecting to the base VM that we use to install any updates. Once we got the machine booted up and got past the connection issue (turned out to be a bug in the VPN client that I use), we started updating the software in the build environment.

Our first attempt at rolling this out was on September 24th. Once we enabled the new image, we almost immediately started getting errors. We rolled back to the old image and started investigating the source of the errors. We found that the image had disappeared from the VM hosts. This meant that we had to re-distribute the image from the master image again. Due to the length of this process, this meant that we were unable to try again until the next day.

Our second attempt at rolling out the image was yesterday, September 25th. We verified that the image was on all the VM hosts this time, and flipped the switch to use the new image. This time the VMs were booting up, but pretty soon we started seeing timeout errors when SSHing into the machines. We tried looking at the screens over VNC and discovered that the machines were getting stuck in the boot sequence, and some asked for a password (even though we have passwordless login enabled).

We're still trying to figure out the booting issue with our infrastructure team, and we hope to have this resolved as soon as possible.

I'm really sorry for the delays in getting this update out to you.


Improved Artifacts; Like Dinosaurs, But Cooler

Dan Buch,

Dan has been a long-time contributor to Travis CI, including not only our Go support, but also features within our cookbooks, as well as how we originally supported uploading artifacts after a build. We're very honored to have him not only help us ship this feature, but also write this blog post, which I'm sure you'll all enjoy. ~ Josh Kalderimis

If the builds you're running on Travis CI produces artifacts, you'll no doubt be thrilled to hear that we want to make saving these artifacts super easy for you.

The first supported tool for doing this was travis-artifacts, a handy gem-installable tool for shipping artifacts to Amazon S3. This was a great start, and solved the immediate need, but we knew we could do better.

Among the problems we hoped to address were the lengthy installation process of runtime dependencies and the lack of first-class support in one's .travis.yml.

What we ended up building comes in two parts. First, there is a binary executable called artifacts. This binary may be downloaded and used directly by following the installation instructions.

In addition to this binary, an artifacts addon was tacked onto travis-build so that you can use it via your .travis.yml. More details are available in the docs, for example, all you need is to add the following to your .travis.yml:

addons:
  artifacts:
    bucket: my-special-bucket
    key:
      secure: SyaIXy6OKDaYiew+...5vgAldy3jkmKA=
    secret:
      secure: X19eaiiFZobD3uCk...X8cY+ohT8WkQ0=

And you should then see at the bottom of your log:

Artifacts upload in
action

The above screenshot is from travis-build.

You can also set ARTIFACTS_KEY and ARTIFACTS_SECRET environment variables via the repository settings in order to keep your .travis.yml more slim, for example:

Artifacts env vars in repository
settings

Setting such environment variables would reduce the valid addons configuration to the following:

addons:
  artifacts:
    bucket: my-special-bucket

By default, any files found using git ls-files -o within your repository directory will be uploaded to S3. If you want to upload a different set of files, you can specify these using the following config:

addons:
  artifacts:
    # ...
    paths:
    # arbitrary shell commands are supported, but the output should be
    # converted to a ':'-delimited string.
    - $(ls /var/log/*.log | tr "\n" ":")
    # singular paths work fine, too
    - $HOME/some/other/path.log

We have some great improvements in the works to make artifacts even better, but consider this the first of many.

We're looking forward to hearing what you think!


Berlin Coffee Office Hours on September 9, 2014 at Silo Coffee

Mathias Meyer's Gravatar Mathias Meyer,

It's a well known fact that the Travis CI team is very appreciative of great coffee, and that we love sharing our enthusiasm. We also enjoy meeting our customers and chat about all things continuous integration, shipping, production and, of course, coffee.

We love combining those things into an opportunity for you to grab a coffee with and on us, and to have a little chat in a relaxed atmosphere.

Next week, just before Josh starts his journey back to the southern hemisphere, literally dozens of timezones away, he'll be stopping by in Berlin for a few days.

Next Tuesday, September 9 2014, we'll be hanging out at Silo Coffee, one of our favorite shops in Berlin, in the morning hours from 9:00-11:30 (okay, maybe even longer than that, it's kinda our second office).

Coffee is on us, so do come by for a chat and a cup of the greatest coffee around. Hint: they're serving the greatest breakfast at Silo Coffee as well!