Add cryp32.lib to config.w32 dependent libs
[m6w6/ext-http] / scripts / gen_travis_yml.php
index 8025713550681c97cc2fbe5fd182a09e76a2ba23..71a855b5fb8f6821e3979691606e5242f66a1685 100755 (executable)
@@ -5,17 +5,16 @@ language: c
 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
@@ -28,16 +27,15 @@ env:
 <?php
 
 $gen = include "./travis/pecl/gen-matrix.php";
-$cur = "7.3";
+$cur = "7.4";
 $env = $gen([
 // most useful for all additional versions except current
-       "PHP" => ["7.0", "7.1", "7.2", "master"],
+       "PHP" => ["7.0", "7.1", "7.2", "7.3", "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,
@@ -46,57 +44,53 @@ $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",
                "with_http_libidn2_dir",
        ],
 ]);
-$allow_failures = [];
 foreach ($env as $grp) {
        foreach ($grp as $e) {
-               if (!strncmp($e, "PHP=master", strlen("PHP=master"))) {
-                       $allow_failures[] = $e;
-               }
                printf(" - %s\n", $e);
        }
 }
 ?>
 
 matrix:
- include:
-  - os: linux
-    dist: trusty
-  - os: linux
-    dist: xenial  
  fast_finish: true
  allow_failures:
 <?php
+$allow_failures = array_merge( ... array_map(function($a) {
+       return preg_grep('/^PHP=(master) /', $a);
+}, $env));
 foreach ($allow_failures as $e) {
        printf("  - env: %s\n", $e);
 }
 ?>
 
 install:
- - ./travis/brotli.sh v1.0.2
  - |
    if test "$PHP" = master; then \
      make -f travis/pecl/Makefile reconf; \
@@ -106,6 +100,14 @@ install:
  - 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