Preinstalled PHP extensions

Loïc Frering,

PHP support on Travis is only made possible with the fantastic help from Loïc Frering, a PHP developer based in Lyon, France.

Loïc has been working on some amazing changes which will benefit the PHP community on Travis, and we are very glad to have him share these changes with you.

If you use PHP on Travis, and would like to show your appreciation, please send him an internet hug, get him over to a conference near you, or visit Lyon and give him a hug and High-5 in person!

When your project depends on some particular PHP extension, maybe memcached or apc, installing these extensions during each build on Travis takes time and can slow down your CI feedback loop dramatically. In order to improve this, and to help get your builds running as fast as possible, we’re happy to announce that the Travis VMs now come pre-setup with some common PHP extensions!

We have taken six of the most popular extensions and preinstalled them in each PHP version (with a few exceptions) so you no longer need to manually build them!

Here is a list of the preinstalled extensions available right now:

These extensions are not enabled by default, you’ll have to explicitly enable them by adding an extension="<extension>.so" line to your PHP configuration.

Previously it was not particularly easy to customize Travis’ PHP configuration since you had to locate the php.ini of the current PHP version you were running your tests against. I (Loïc) developed a little extension to phpenv, which Travis uses for PHP environment switching, that allows you to easily add a config file with all the configuration directives which make sense for your build with one super simple command!

Just use phpenv config-add and phpenv config-rm to add or remove a configuration file. You can refer to the documentation for more details on how to customize your PHP configuration.

The easiest way to enable a preinstalled extension is to use phpenv config-add to add a custom config file which enables and configures the extension you need, for example:

before_script: phpenv config-add myconfig.ini

And your myconfig.ini could look like this:

extension = "mongo.so"
# some other mongo specific configuration directives
# or general custom PHP settings...

If adding a full configuration file is overkill for your needs, you can also use this one-line command in your before_script:

echo "extension = <extension>.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini

For more information, please refer to the PHP extensions section of the documentation!

This feature is live on Travis CI for open source projects now and will be made available to Travis Pro projects on the 18th of March.

Unfortunately, this update may cause build failures because of incompatibilities between the extension you are trying to install and the extension already preinstalled. We encourage you to update your Travis setup to take advantage of this new feature and to report any issues you encounter on our GitHub issues tracker. You can also pop into #travis on chat.freenode.net if you need any help.

If you feel that there is a really important extension that should be preinstalled on Travis, feel free to tell us.

We hope you enjoy this new feature and that it will make your test settings easier, speed up your builds, and bring a huge smile to your faces :)

Happy testing!

Your friendly Frenchman,

Loïc Frering


Introducing Our Status Page

Mathias Meyer's Gravatar Mathias Meyer,

“All Systems Operational!” is the kind of thing everyone loves to see and hear. Unfortunately failure is always lurking around the corner. During our outages in the past, we lacked a public facing way to inform our users and customers about potential issues on the platform, both for open source and private projects.

In short, we lacked a status page. We’re sorry for holding off on shipping one for so long, but the good news is, we finally have one in place.

If you hop over to http://status.travis-ci.com you’ll be greeted by our friendly mascot and the current state of all relevant parts of Travis CI, together with the latest incidents and their resolutions.

The status updates are also connected to our Twitter account, so any incidents will be posted there as well. We’ll publish notifications for both platforms there to avoid the confusion of having two status pages for each separately.

The status page also supports updates notifications via email, so you can sign up to be notified via email when an issue comes up. Note that you’ll get notifications for both platforms, which may or may not be relevant to you depending on which ones you’re using.

We’re using a hosted service for this service, courtesy of the fine folks at http://statuspage.io. They just yesterday shipped an initial version of their API, so we already started implementing support for hubot so we can update the site’s status from the comfort of our Campfire room.


Last Minute Coffee Office Hours in Melbourne

Josh Kalderimis's Gravatar Josh Kalderimis,

![Tim Bieber](/images/Tim_Lucas_200px.jpg)
Tim Bieber.

New Zealanders are known to be fashionably late. So in the true spirit of being a New Zealander, and annoucing things at the last minute, I am happy to blog that the transient traveling Travis team member, Josh (@j2h) (me), is in Melbourne and would love to buy you a coffee this Friday the 1st of March, from 11am, at The League of Honest Coffee on 8 Exploration Ln.

There is a small catch, if you want a free coffee you’ll need to send a tweet to @toolmantim containing the hashtag #timbieber and then show it to Josh :)

See you there!

Josh