#!/usr/bin/env php name: ci on: workflow_dispatch: push: pull_request: jobs: github([ "master" => [ // most useful for all additional versions except current "PHP" => ["master"], "enable_debug" => "yes", "enable_zts" => "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, "enable_debug", "enable_zts", "enable_iconv" => "yes", ], "cur-cov" => [ // once everything enabled for current, with coverage "CFLAGS" => "'-O0 -g --coverage'", "CXXFLAGS" => "'-O0 -g --coverage'", "PHP" => $cur, "enable_iconv" => "yes", [ // mutually exclusive "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 \ libidn11-dev \ libidn2-0-dev \ libicu-dev \ libevent-dev \ libbrotli-dev - 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 - 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