From c99ff28a0da10b58425aa020f4a9cef7844b7726 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Wed, 13 Jan 2021 11:12:29 +0100 Subject: [PATCH] travis -> gh-actions --- .github/workflows/ci.yml | 612 +++++++++++++++++++++++++++++ .gitmodules | 6 +- .travis.yml | 81 ---- scripts/ci | 1 + scripts/gen_github_workflow_ci.php | 120 ++++++ scripts/gen_travis_yml.php | 129 ------ travis/brotli.sh | 19 - travis/pecl | 1 - 8 files changed, 735 insertions(+), 234 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml create mode 160000 scripts/ci create mode 100755 scripts/gen_github_workflow_ci.php delete mode 100755 scripts/gen_travis_yml.php delete mode 100755 travis/brotli.sh delete mode 160000 travis/pecl diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..367f1a0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,612 @@ +# generated file; do not edit! + +name: ci +on: + workflow_dispatch: + push: + pull_request: + +jobs: + old-matrix-0: + name: old-matrix-0 + env: + PHP: "7.0" + enable_debug: "yes" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + old-matrix-1: + name: old-matrix-1 + env: + PHP: "7.1" + enable_debug: "yes" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + old-matrix-2: + name: old-matrix-2 + env: + PHP: "7.2" + enable_debug: "yes" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + old-matrix-3: + name: old-matrix-3 + env: + PHP: "7.3" + enable_debug: "yes" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-none-0: + name: cur-none-0 + env: + PHP: "7.4" + 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" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-dbg-zts-0: + name: cur-dbg-zts-0 + env: + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_debug: "yes" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-dbg-zts-1: + name: cur-dbg-zts-1 + env: + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_debug: "no" + enable_maintainer_zts: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-dbg-zts-2: + name: cur-dbg-zts-2 + env: + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_debug: "yes" + enable_maintainer_zts: "no" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-dbg-zts-3: + name: cur-dbg-zts-3 + env: + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_debug: "no" + enable_maintainer_zts: "no" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + cur-cov-0: + name: cur-cov-0 + env: + CFLAGS: "'-O0 -g --coverage'" + CXXFLAGS: "'-O0 -g --coverage'" + PHP: "7.4" + 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" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + - name: Coverage + if: success() + run: | + cd src/.libs + bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy + + cur-cov-1: + name: cur-cov-1 + env: + CFLAGS: "'-O0 -g --coverage'" + CXXFLAGS: "'-O0 -g --coverage'" + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + with_http_libicu_dir: "no" + with_http_libidn_dir: "yes" + with_http_libidn2_dir: "no" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + - name: Coverage + if: success() + run: | + cd src/.libs + bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy + + cur-cov-2: + name: cur-cov-2 + env: + CFLAGS: "'-O0 -g --coverage'" + CXXFLAGS: "'-O0 -g --coverage'" + PHP: "7.4" + PECLs: "event" + enable_sockets: "yes" + enable_json: "yes" + enable_hash: "yes" + enable_iconv: "yes" + with_http_libicu_dir: "no" + with_http_libidn_dir: "no" + with_http_libidn2_dir: "yes" + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + - name: Coverage + if: success() + run: | + cd src/.libs + bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy + diff --git a/.gitmodules b/.gitmodules index e53f88c..50b805e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,2 @@ -[submodule "travis-pecl"] - path = travis/pecl - url = https://github.com/m6w6/travis-pecl.git - branch = master +[submodule "scripts/ci"] + url = https://github.com/m6w6/pecl-ci.git diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1f1f111..0000000 --- a/.travis.yml +++ /dev/null @@ -1,81 +0,0 @@ -# autogenerated file; do not edit -language: c - -addons: - apt: - packages: - - php-cli - - php-pear - - libcurl4-openssl-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=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.3 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.4 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.4 PECLs=event enable_sockets=yes enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes - - PHP=7.4 PECLs=event enable_sockets=yes enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes enable_iconv=yes - - PHP=7.4 PECLs=event enable_sockets=yes enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes enable_iconv=yes - - PHP=7.4 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.4 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.4 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.4 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=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 - -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/28d35158ac7e385bd14d - on_success: change - on_failure: always - on_start: never diff --git a/scripts/ci b/scripts/ci new file mode 160000 index 0000000..547c8e8 --- /dev/null +++ b/scripts/ci @@ -0,0 +1 @@ +Subproject commit 547c8e89e38d6e899914c05ddf6598669bd16532 diff --git a/scripts/gen_github_workflow_ci.php b/scripts/gen_github_workflow_ci.php new file mode 100755 index 0000000..5970cc0 --- /dev/null +++ b/scripts/gen_github_workflow_ci.php @@ -0,0 +1,120 @@ +#!/usr/bin/env php + + +name: ci +on: + workflow_dispatch: + push: + pull_request: + +jobs: +github([ +"old-matrix" => [ +// most useful for all additional versions except current + "PHP" => ["7.0", "7.1", "7.2", "7.3"], + "enable_debug" => "yes", + "enable_maintainer_zts" => "yes", + "enable_json" => "yes", + "enable_hash" => "yes", + "enable_iconv" => "yes", +], +"cur-none" => [ +// 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", +], +"cur-dbg-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", +], +"cur-cov" => [ +// 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_libicu_dir", + "with_http_libidn_dir", + "with_http_libidn2_dir", + ], +]]); + +foreach ($job as $id => $env) { + printf(" %s:\n", $id); + printf(" name: %s\n", $id); + if ($env["PHP"] == "master") { + printf(" continue-on-error: true\n"); + } + printf(" env:\n"); + foreach ($env as $key => $val) { + printf(" %s: \"%s\"\n", $key, $val); + } +?> + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install + run: | + sudo apt-get install -y \ + php-cli \ + php-pear \ + libcurl4-openssl-dev \ + libevent-dev \ + libidn11-dev \ + libidn2-0-dev \ + libicu-dev \ + libevent-dev \ + libbrotli-dev \ + re2c + - name: Prepare + run: | + make -f scripts/ci/Makefile php || make -f scripts/ci/Makefile clean php + make -f scripts/ci/Makefile pecl PECL=m6w6/ext-raphf.git:raphf:master + make -f scripts/ci/Makefile pecl PECL=ext-propro.git:propro:master + if test -n "$PECLs"; then + IFS=$',' + for pecl in $PECLs; do + make -f scripts/ci/Makefile pecl PECL=$pecl + done + unset IFS + fi + + - name: Build + run: | + make -f scripts/ci/Makefile ext PECL=http + - name: Test + run: | + make -f scripts/ci/Makefile test + + - name: Coverage + if: success() + run: | + cd src/.libs + bash <(curl -s https://codecov.io/bash) -X xcode -X coveragepy + + + ["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", -], [ -// 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 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", -], [ -// 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_libicu_dir", - "with_http_libidn_dir", - "with_http_libidn2_dir", - ], -]); -foreach ($env as $grp) { - foreach ($grp as $e) { - printf(" - %s\n", $e); - } -} -?> - -matrix: - fast_finish: true - allow_failures: - - -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 - -notifications: - webhooks: - urls: - - https://webhooks.gitter.im/e/28d35158ac7e385bd14d - on_success: change - on_failure: always - on_start: never diff --git a/travis/brotli.sh b/travis/brotli.sh deleted file mode 100755 index d23dd19..0000000 --- a/travis/brotli.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -BROTLI_DIR="$with_http_libbrotli_dir" -BROTLI_SRC="$BROTLI_DIR.git" - -if test -n "$BROTLI_DIR" && test "$BROTLI_DIR" != "no"; then - if test -d "$BROTLI_SRC"; then - cd "$BROTLI_SRC" - git pull - else - git clone https://github.com/google/brotli.git "$BROTLI_SRC" - cd "$BROTLI_SRC" - fi - git checkout $1 - ./bootstrap - ./configure -C --prefix="$BROTLI_DIR" - make -j ${JOBS:2} - make install INSTALL=install -fi diff --git a/travis/pecl b/travis/pecl deleted file mode 160000 index 54a746a..0000000 --- a/travis/pecl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 54a746ab5e068060f53796d0aca55f76656bb8b1 -- 2.30.2