fix #91: get rid of most of the yearly failing test
[m6w6/ext-http] / .travis.yml
index b3e407a3242a37275b508482cd45936acafaa84f..eafe539363f90ea5af35bded5a5c5a266b3b65b3 100644 (file)
@@ -4,32 +4,79 @@ language: c
 addons:
  apt:
   packages:
-   - php5-cli
+   - php-cli
    - php-pear
    - libcurl4-openssl-dev
-   - zlib1g-dev
    - libidn11-dev
+   - libidn2-0-dev
+   - libicu-dev
    - libevent-dev
+   - libbrotli-dev
+
+dist: xenial
+
+cache:
+ apt: true
+ directories:
+  - $HOME/cache
+before_cache:
+ - find $HOME/cache -name '*.gcda' -o -name '*.gcno' -delete
 
 env:
- - PHP=master enable_debug=no enable_maintainer_zts=no enable_json=no enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=yes enable_maintainer_zts=no enable_json=no enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=no enable_maintainer_zts=yes enable_json=no enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=yes enable_maintainer_zts=yes enable_json=no enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
- - PHP=master enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes enable_phar=yes enable_posix=yes
-
-before_script:
- - make -f travis/pecl/Makefile php
- - make -f travis/pecl/Makefile pharext/raphf-phpng pharext/propro-phpng
+ - PHP=7.0 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.1 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.2 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.4 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=master enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.3 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
+ - PHP=7.3 PECLs=event enable_sockets=yes enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.3 PECLs=event enable_sockets=yes enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.3 PECLs=event enable_sockets=yes enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - PHP=7.3 PECLs=event enable_sockets=yes enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+ - CFLAGS='-O0 -g --coverage' CXXFLAGS='-O0 -g --coverage' PHP=7.3 PECLs=event enable_sockets=yes enable_json=yes enable_hash=yes enable_iconv=yes with_http_libicu_dir=yes with_http_libidn_dir=no with_http_libidn2_dir=no 
+ - CFLAGS='-O0 -g --coverage' CXXFLAGS='-O0 -g --coverage' PHP=7.3 PECLs=event enable_sockets=yes enable_json=yes enable_hash=yes enable_iconv=yes with_http_libidn_dir=yes with_http_libicu_dir=no with_http_libidn2_dir=no 
+ - CFLAGS='-O0 -g --coverage' CXXFLAGS='-O0 -g --coverage' PHP=7.3 PECLs=event enable_sockets=yes enable_json=yes enable_hash=yes enable_iconv=yes with_http_libidn2_dir=yes with_http_libicu_dir=no with_http_libidn_dir=no 
+
+matrix:
+ fast_finish: true
+ allow_failures:
+  - env: PHP=7.4 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+  - env: PHP=master enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes
+
+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
+ - |
+   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
  - make -f travis/pecl/Makefile test
 
 after_script:
+ - make -f travis/pecl/Makefile cppcheck
+after_failure:
  - test -e tests/helper/server.log && cat tests/helper/server.log
+after_success:
+ - test -n "$CFLAGS" && cd src/.libs && bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy
 
-sudo: false
+notifications:
+ webhooks:
+  urls:
+   - https://webhooks.gitter.im/e/28d35158ac7e385bd14d
+  on_success: change
+  on_failure: always
+  on_start: never