travis
[m6w6/ext-http] / scripts / gen_travis_yml.php
index ff43cf063b88ed4f827130ec89c79df5b97e6acf..ef73806fe757f2873e6d85952e4f279d496b979f 100755 (executable)
 #!/usr/bin/env php
 # autogenerated file; do not edit
 language: c
-sudo: required
-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
+
+dist: xenial
+
+compiler:
+ - gcc
+ - clang
+
+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.3";
 $env = $gen([
-       "PHP" => ["7.0", "7.1", "master"],
+// most useful for all additional versions except current
+       "PHP" => ["7.0", "7.1", "7.2", "master"],
+       "enable_debug" => "yes",
+       "enable_maintainer_zts" => "yes",
+       "enable_json" => "yes",
+       "enable_hash" => "yes",
+       "enable_iconv" => "yes",
+], [
+// everything disabled for current
+       "PHP" => $cur,
+       "with_http_libicu_dir" => "no",
+       "with_http_libidn_dir" => "no",
+       "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
+       "PHP" => $cur,
        "enable_debug",
        "enable_maintainer_zts",
-       "enable_json",
-       "enable_hash" => ["yes"],
-       "enable_iconv" => ["yes"],
-       "with_http_libicu_dir",
+       "enable_json" => "yes",
+       "enable_hash" => "yes",
+       "enable_iconv" => "yes",
+], [
+// once everything enabled for current, with coverage
+       "CFLAGS" => "'-O0 -g --coverage'",
+       "CXXFLAGS" => "'-O0 -g --coverage'",
+       "PHP" => $cur,
+       "enable_json" => "yes",
+       "enable_hash" => "yes",
+       "enable_iconv" => "yes",
+       [
+               "with_http_libicu_dir",
+               "with_http_libidn_dir",
+               "with_http_libidn2_dir",
+       ],
 ]);
-foreach ($env as $e) {
-       printf(" - %s\n", $e);
+foreach ($env as $grp) {
+       foreach ($grp as $e) {
+               printf(" - %s\n", $e);
+       }
 }
+?>
 
+matrix:
+ 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);
+}
 ?>
-# once with gcov
- - CFLAGS="-O0 -g --coverage" CXXFLAGS="-O0 -g --coverage" PHP=master enable_json=yes enable_hash=yes enable_iconv=yes 
 
-before_script:
- - make -f travis/pecl/Makefile php
- - make -f travis/pecl/Makefile pecl PECL=raphf:raphf:2.0.0
- - make -f travis/pecl/Makefile pecl PECL=propro:propro:2.0.1
- - make -f travis/pecl/Makefile ext PECL=http
+install:
+ - |
+   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
 
 script:
+ - make -f travis/pecl/Makefile ext PECL=http
  - make -f travis/pecl/Makefile test
- - make -f travis/pecl/Makefile cppcheck
 
+after_script:
+ - make -f travis/pecl/Makefile cppcheck
 after_failure:
  - test -e tests/helper/server.log && cat tests/helper/server.log
 after_success: