Backport v4 updates
[m6w6/ext-http] / .github / workflows / ci.yml
index 0221ad8655275e73a2bc84d7a3d7ac9cdcfa1f8f..93450912f300ec00052415d093091cf192a96f9a 100644 (file)
@@ -7,236 +7,489 @@ on:
   pull_request:
 
 jobs:
-  master-0:
-    name: master-0
-    continue-on-error: true
+  old-matrix-0:
+    name: old-matrix-0
     env:
-      PHP: master
-      enable_debug: yes
-      enable_zts: yes
-      enable_iconv: yes
+      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
-        submodules: true
+        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=m6w6/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=m6w6/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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          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=m6w6/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: 8.0
-      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"
+      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
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
 
   cur-dbg-zts-0:
     name: cur-dbg-zts-0
     env:
-      PHP: 8.0
-      enable_debug: yes
-      enable_zts: 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"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
 
   cur-dbg-zts-1:
     name: cur-dbg-zts-1
     env:
-      PHP: 8.0
-      enable_debug: no
-      enable_zts: 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"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
 
   cur-dbg-zts-2:
     name: cur-dbg-zts-2
     env:
-      PHP: 8.0
-      enable_debug: yes
-      enable_zts: no
-      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"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
 
   cur-dbg-zts-3:
     name: cur-dbg-zts-3
     env:
-      PHP: 8.0
-      enable_debug: no
-      enable_zts: no
-      enable_iconv: yes
+      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
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
 
   cur-cov-0:
     name: cur-cov-0
     env:
-      CFLAGS: '-O0 -g --coverage'
-      CXXFLAGS: '-O0 -g --coverage'
-      PHP: 8.0
-      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_libicu_dir: "yes"
+      with_http_libidn_dir: "no"
+      with_http_libidn2_dir: "no"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
       - name: Coverage
         if: success()
         run: |
@@ -246,37 +499,54 @@ jobs:
   cur-cov-1:
     name: cur-cov-1
     env:
-      CFLAGS: '-O0 -g --coverage'
-      CXXFLAGS: '-O0 -g --coverage'
-      PHP: 8.0
-      enable_iconv: yes
-      with_http_libicu_dir: no
-      with_http_libidn_dir: yes
-      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_libicu_dir: "no"
+      with_http_libidn_dir: "yes"
+      with_http_libidn2_dir: "no"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
       - name: Coverage
         if: success()
         run: |
@@ -286,37 +556,54 @@ jobs:
   cur-cov-2:
     name: cur-cov-2
     env:
-      CFLAGS: '-O0 -g --coverage'
-      CXXFLAGS: '-O0 -g --coverage'
-      PHP: 8.0
-      enable_iconv: yes
-      with_http_libicu_dir: no
-      with_http_libidn_dir: no
-      with_http_libidn2_dir: 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: "no"
+      with_http_libidn_dir: "no"
+      with_http_libidn2_dir: "yes"
+    runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
-        submodules: true
+        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
+            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=m6w6/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 travis/pecl/Makefile ext PECL=http
+          make -f scripts/ci/Makefile ext PECL=http
       - name: Test
         run: |
-          make -f travis/pecl/Makefile test
+          make -f scripts/ci/Makefile test
       - name: Coverage
         if: success()
         run: |