suppress new PHP-7.4 notice about failed stream_write
[m6w6/ext-http] / scripts / gen_travis_yml.php
index 3408a5d6fddc467737a0fb36ffc527a9719b6e76..f393bbcd68322d223a09e39b33f29ee600b6a55e 100755 (executable)
@@ -1,42 +1,41 @@
 #!/usr/bin/env php
 # autogenerated file; do not edit
 language: c
-sudo: false
-dist: trusty
 
 addons:
  apt:
   packages:
-   - php5-cli
+   - php-cli
    - php-pear
    - libcurl4-openssl-dev
    - libidn11-dev
    - libidn2-0-dev
    - libicu-dev
    - libevent-dev
+   - libbrotli-dev
 
-compiler:
- - gcc
- - clang
+dist: xenial
 
 cache:
+ apt: true
  directories:
   - $HOME/cache
+before_cache:
+ - find $HOME/cache -name '*.gcda' -o -name '*.gcno' -delete
 
 env:
 <?php
 
 $gen = include "./travis/pecl/gen-matrix.php";
-$cur = "7.2";
+$cur = "7.3";
 $env = $gen([
 // most useful for all additional versions except current
-       "PHP" => ["7.0", "7.1",  "master"],
+       "PHP" => ["7.0", "7.1", "7.2", "7.4", "master"],
        "enable_debug" => "yes",
        "enable_maintainer_zts" => "yes",
        "enable_json" => "yes",
        "enable_hash" => "yes",
        "enable_iconv" => "yes",
-       "with_http_libbrotli_dir" => "/home/travis/brotli"
 ], [
 // everything disabled for current
        "PHP" => $cur,
@@ -45,24 +44,27 @@ $env = $gen([
        "with_http_libidn2_dir" => "no",
        "with_http_libcurl_dir" => "no",
        "with_http_libevent_dir" => "no",
+       "with_http_libbrotli_dir" => "no",
 ], [
-// everything enabled for current, switching on debug/zts
+// everything enabled for current, switching debug/zts
        "PHP" => $cur,
+       "PECLs" => "event",                     // for tests/client029.phpt
+       "enable_sockets" => "yes",      // needed by pecl/event
        "enable_debug",
        "enable_maintainer_zts",
        "enable_json" => "yes",
        "enable_hash" => "yes",
        "enable_iconv" => "yes",
-       "with_http_libbrotli_dir" => "/home/travis/brotli",
 ], [
 // once everything enabled for current, with coverage
        "CFLAGS" => "'-O0 -g --coverage'",
        "CXXFLAGS" => "'-O0 -g --coverage'",
        "PHP" => $cur,
+       "PECLs" => "event",                     // for tests/client029.phpt
+       "enable_sockets" => "yes",      // needed by pecl/event
        "enable_json" => "yes",
        "enable_hash" => "yes",
        "enable_iconv" => "yes",
-       "with_http_libbrotli_dir" => "/home/travis/brotli",
        [
                "with_http_libicu_dir",
                "with_http_libidn_dir",
@@ -74,14 +76,38 @@ foreach ($env as $grp) {
                printf(" - %s\n", $e);
        }
 }
+?>
 
+matrix:
+ fast_finish: true
+ allow_failures:
+<?php
+$allow_failures = array_merge( ... array_map(function($a) {
+       return preg_grep('/^PHP=(master|7.4) /', $a);
+}, $env));
+foreach ($allow_failures as $e) {
+       printf("  - env: %s\n", $e);
+}
 ?>
 
 install:
- - ./travis/brotli.sh v1.0.2
- - make -f travis/pecl/Makefile php
+ - |
+   if test "$PHP" = master; then \
+     make -f travis/pecl/Makefile reconf; \
+     make -f travis/pecl/Makefile pecl-rm pecl-clean PECL=ext-raphf.git:raphf:master; \
+     make -f travis/pecl/Makefile pecl-rm pecl-clean PECL=ext-propro.git:propro:master; \
+   fi
+ - make -f travis/pecl/Makefile php || make -f travis/pecl/Makefile clean php
  - make -f travis/pecl/Makefile pecl PECL=ext-raphf.git:raphf:master
  - make -f travis/pecl/Makefile pecl PECL=ext-propro.git:propro:master
+ - |
+   if test -n "$PECLs"; then \
+     IFS=$','; \
+     for pecl in $PECLs; do \
+       make -f travis/pecl/Makefile pecl PECL=$pecl; \
+     done; \
+     unset IFS; \
+   fi
 
 script:
  - make -f travis/pecl/Makefile ext PECL=http