You Have No Excuse Not to Use Continuous Integration for Open-Source PHP

DZone 's Guide to

You Have No Excuse Not to Use Continuous Integration for Open-Source PHP

· Web Dev Zone ·
Free Resource

Continuous Integration just makes sense. It's like a conversation instead of a conference, a bunch of developers working in the same space: everybody's code works together when everybody works together, all the time.

But sometimes it doesn't seem worth it. It's hard to get everyone talking exactly the same language, in exactly the same space, for any usefully extended period of time. If the benefits aren't huge (as in the case of, say, a relatively small open-source project), then maybe the activation energy is too high.

That's how Lukas Kahwe Smith explains why CI, despite its good sense, has gotten off to a rather slow start.

But now, Lukas continues, that activation energy has become so low -- thanks to Travis CI, an open, distributed build system for the open source community -- that you have no good reason not to use CI on your open-source projects. And since Travis CI now supports PHP, your open-source PHP projects can benefit from Travis' catalysis right now.

Here's how much Lukas loves Travis CI:

...thanks to the new Travis CI service, its now essentially so easy that there is no excuse not to use CI for PHP projects, at least if you are hosting your OSS code on github.com. What makes this service so crazy cool is that you can run your tests against multiple PHP versions, multiples databases (heck even RabbitMQ) and against multiple versions of various libraries.

Sounds great. But what if you've already thought about CI and still rejected it as too complex? 

Well, Lukas may have pre-empted your objections in his full post. Read it and see.

In any case, if you're doing open-source PHP development, then you might want to consider this advice from a highly respected, long-time contributor to the PHP community.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}