github actions: add curl matrix
authorMichael Wallner <mike@php.net>
Tue, 31 Aug 2021 12:11:52 +0000 (14:11 +0200)
committerMichael Wallner <mike@php.net>
Tue, 7 Sep 2021 07:30:08 +0000 (09:30 +0200)
.github/workflows/curl-matrix.yml [new file with mode: 0644]
scripts/curlver.dist [new file with mode: 0644]
scripts/gen_github_workflow_curl-matrix.php [new file with mode: 0755]

diff --git a/.github/workflows/curl-matrix.yml b/.github/workflows/curl-matrix.yml
new file mode 100644 (file)
index 0000000..3544bda
--- /dev/null
@@ -0,0 +1,993 @@
+# generated file; do not edit!
+
+name: curl-matrix
+on:
+  workflow_dispatch:
+  push:
+
+jobs:
+  curl-master:
+    name: curl-master
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "master"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_78_0:
+    name: curl-7_78_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_78_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_78_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_77_0:
+    name: curl-7_77_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_77_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_77_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_76_1:
+    name: curl-7_76_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_76_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_76_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_74_0:
+    name: curl-7_74_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_74_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_74_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_71_1:
+    name: curl-7_71_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_71_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_71_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_68_0:
+    name: curl-7_68_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_68_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_68_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_67_0:
+    name: curl-7_67_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_67_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_67_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_64_0:
+    name: curl-7_64_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_64_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_64_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_61_1:
+    name: curl-7_61_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_61_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_61_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_58_0:
+    name: curl-7_58_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_58_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_58_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_52_1:
+    name: curl-7_52_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_52_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_52_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_49_1:
+    name: curl-7_49_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_49_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_49_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_31_0:
+    name: curl-7_31_0
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_31_0"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_31_0 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_20_1:
+    name: curl-7_20_1
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_20_1"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_20_1 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_19_7:
+    name: curl-7_19_7
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_19_7"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_19_7 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+  curl-7_18_2:
+    name: curl-7_18_2
+    continue-on-error: true
+    env:
+      PHP: "8.0"
+      CURL: "7_18_2"
+      enable_debug: "yes"
+      enable_iconv: "yes"
+      with_http_libcurl_dir: "/opt"
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+          ref: curl-7_18_2 #
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
diff --git a/scripts/curlver.dist b/scripts/curlver.dist
new file mode 100644 (file)
index 0000000..b0d22b4
--- /dev/null
@@ -0,0 +1,16 @@
+# current is 7.78.0 ATM
+# 7.21.5-7.29.0 fail to configure on gh actions
+
+alpine: 7.78.0 7.67.0
+centos: 7.61.1 # 7.29.0
+debian: 7.74.0 7.64.0 7.52.1
+fedora: 7.78.0 7.76.1 7.71.1
+other: 7.49.1 7.31.0
+ubuntu: 7.74.0 7.68.0 7.58.0
+
+# always test against a few recent
+latest: master 7.78.0 7.77.0 7.76.1
+oldest: 7.18.2 7.19.7 7.20.1
+
+# 7.64.1 fails client tests because of superfluous infof() calls
+# 7.64.0 fails client cookie test because of curl/curl#3613
diff --git a/scripts/gen_github_workflow_curl-matrix.php b/scripts/gen_github_workflow_curl-matrix.php
new file mode 100755 (executable)
index 0000000..66b50c9
--- /dev/null
@@ -0,0 +1,104 @@
+#!/usr/bin/env php
+<?php echo "# generated file; do not edit!\n"; ?>
+
+name: curl-matrix
+on:
+  workflow_dispatch:
+  push:
+
+jobs:
+<?php
+
+if ($argc > 1) {
+  $curlver = array_map(fn($v) => strtr($v, ".", "_"), array_unique(array_slice($argv, 1)));
+} else {
+  $curlver = array_unique(
+    iterator_to_array(
+      (function() {
+        $split = function($sep, $subject, $def = [""]) {
+          return array_filter(array_map("trim", explode($sep, $subject))) + $def;
+        };
+        foreach (file(__DIR__."/curlver.dist") as $line) {
+          $rec = $split(":", $split("#", $line)[0]);
+          if (!empty($rec[1])) foreach ($split(" ", $rec[1], []) as $dist_ver) {
+            yield strtr($dist_ver, ".", "_");
+          }
+        }
+      })()
+    )
+  );
+}
+
+rsort($curlver, SORT_NATURAL);
+
+$gen = include __DIR__ . "/ci/gen-matrix.php";
+$job = $gen->github([
+"curl" => [
+    "PHP" => "8.0",
+    "CURL" => $curlver,
+    "enable_debug" => "yes",
+    "enable_iconv" => "yes",
+    "with_http_libcurl_dir" => "/opt",
+]]);
+foreach ($job as $id => $env) {
+    printf("  curl-%s:\n", $env["CURL"]);
+    printf("    name: curl-%s\n", $env["CURL"]);
+    printf("    continue-on-error: true\n");
+    printf("    env:\n");
+    foreach ($env as $key => $val) {
+        printf("      %s: \"%s\"\n", $key, $val);
+    }
+?>
+    runs-on: ubuntu-18.04
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+          path: http
+      - uses: actions/checkout@v2
+        with:
+          repository: curl/curl
+          path: curl
+<?php if ($env["CURL"] !== "master") : ?>
+          ref: curl-<?=$env["CURL"]?> #
+<?php endif; ?>
+      - name: Install
+        run: |
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic main' | sudo tee -a /etc/apt/sources.list && \
+          echo 'deb-src http://azure.archive.ubuntu.com/ubuntu bionic-updates main' | sudo tee -a /etc/apt/sources.list && \
+          sudo apt-get update -y &&  \
+          sudo apt-get build-dep -y libcurl4-openssl-dev && \
+          sudo apt-get install -y \
+            php-cli \
+            php-pear \
+            libidn11-dev \
+            libidn2-0-dev \
+            libicu-dev \
+            libevent-dev \
+            libbrotli-dev \
+            re2c
+      - name: Curl
+        run: |
+          sudo chmod +x /usr/share/libtool/build-aux/ltmain.sh
+          sudo ln -s /usr/share/libtool/build-aux/ltmain.sh /usr/bin/libtool
+          cd curl
+          ./buildconf
+          ./configure --prefix=/opt --disable-dependency-tracking --with-ssl --with-openssl --without-libssh2
+          make -j2
+          make install
+      - name: Prepare
+        run: |
+          cd http
+          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: |
+          cd http
+          make -f scripts/ci/Makefile ext PECL=http
+      - name: Test
+        run: |
+          cd http
+          make -f scripts/ci/Makefile test
+
+<?php
+}