Add support for Travis CI #68

merged 6 commits into from Jun 3, 2012


None yet

8 participants

dshafik commented Apr 26, 2012

This is more of a proof of concept; it configures, builds and tests PHP with each commit.

What doesn't work:

  • NOT A BUG It isn't mailing the results of the run to the ML (the ML is no longer used, need to confirm they do show up at however)
  • FIXED It isn't exiting with 1 when there are failed tests despite setting REPORT_EXIT_STATUS=1
  • FIXED It isn't connecting to MySQL to test the mysql extensions

I'd like to:

  • Get as many DB extensions testing as possible
    • Travis supports: MySQL, PostgreSQL, SQLite3, MongoDB, CouchDB, Redis, Riak, Memcached
  • Get as many other extensions testing as possible
    • Travis can install dependencies using apt-get
  • Also get it working for PECL extensions

I'm just throwing this out here right now to gauge interest, and to see if anyone else wants to contribute :)

You can see this in action here, or just look at: Build Status

Palleas commented Apr 26, 2012

This is awesome, thanks!


If this gets merged in and you guys are interested in pull-request testing then shoot us a note at This feature is currently being rolled out manually but we'd love to turn it on for php.

dshafik commented Apr 28, 2012

With 355cf75 the tests are now running against MySQL, PgSQL, and SQLite, and covers 53 extensions, running 99.2% of the full test suite.

I'm thinking seeing as this is a PHP 5.4 box, that we can use php -s in the ext/curl/tests/responder directory to allow setting of PHP_CURL_HTTP_REMOTE_SERVER for ext/curl.

reeze commented Apr 28, 2012

Cool, Travis is awesome.

dsp commented Apr 30, 2012

FYI looking into it. General idea is great, have to read about travis, etc first.

@dsp dsp was assigned Apr 30, 2012
@dsp dsp commented on an outdated diff May 25, 2012
@@ -332,6 +332,7 @@ function write_information($show_html)
define('PHP_QA_EMAIL', '');
define('QA_SUBMISSION_PAGE', '');
define('QA_REPORTS_PAGE', '');
+define('TRAVIS_CI' , !!getenv('TRAVIS_PHP_VERSION'));
dsp May 25, 2012 Member

Looks like idomatic JavaScript code. If you want to convert it to a boolean use

define('TRAVIS_CI', (boolean) getenv('TRAVIS_PHP_VERSION'));
@dsp dsp commented on an outdated diff May 25, 2012
@@ -369,7 +370,9 @@ function save_or_mail_results()
/* Ask the user to provide an email address, so that QA team can contact the user */
- if (!strncasecmp($user_input, 'y', 1) || strlen(trim($user_input)) == 0) {
+ if (TRAVIS_CI) {
dsp May 25, 2012 Member

Indention looks wrong on github. You probably used spaced, while the rest of the script uses tabs.

dsp commented May 25, 2012

I like the idea. If there are no objections from internals I will go ahead and merge that once you squelched the little issues.

Tyrael commented May 25, 2012

for the REPORT_EXIT_STATUS problem see


I know someone who is working on firebird support for travis but I have no idea how long that will take him.

dshafik commented May 28, 2012

@dsp 5ef46fe should solve both the issues you raised.

dsp commented Jun 3, 2012

@Tyrael would be great to have that fixed :)

@dsp dsp added a commit that referenced this pull request Jun 3, 2012
@dsp dsp Merge branch 'pull-request/68'
By Davey Shafik
via Davey Shafik
* pull-request/68:
  Fix boolean casting and whitespace (@dsp / #68)
  Add curl extension config, uses cli-server to test
  Source all extension scripts for ENV vars
  Add extension configs, compile more extensions
  Reformat, setup MySQL DB, call run-tests directly
  Add support for Travis CI
@php-pulls php-pulls merged commit 5ef46fe into php:master Jun 3, 2012
dsp commented Jun 3, 2012

Merged. Let's see how it works out

dsp commented Jun 3, 2012

looks like tests on masters are currently failing, shows 13 failing while travis has 52 failing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment