summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorStefan Eissing <stefan@eissing.org>2023-01-18 11:11:41 +0100
committerDaniel Stenberg <daniel@haxx.se>2023-01-31 12:04:23 +0100
commit91eb197a9e9cd8f5aa696773008de2401c1f4f6c (patch)
tree5d9b8310c1441098a7043f4a25e5c86ff78e5e9f /.github
parentd55de24dce9d51eac913e20c17022c732124b83f (diff)
downloadcurl-91eb197a9e9cd8f5aa696773008de2401c1f4f6c.tar.gz
CI: add pytest github workflow to CI test/tests-httpd on a HTTP/3 setup
Closes #10317
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/pytest.yml103
1 files changed, 103 insertions, 0 deletions
diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml
new file mode 100644
index 000000000..eac6ed108
--- /dev/null
+++ b/.github/workflows/pytest.yml
@@ -0,0 +1,103 @@
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# SPDX-License-Identifier: curl
+
+name: pytest
+
+on:
+ push:
+ branches:
+ - master
+ - '*/ci'
+ paths-ignore:
+ - '**/*.md'
+ pull_request:
+ branches:
+ - master
+ paths-ignore:
+ - '**/*.md'
+
+concurrency:
+ # Hardcoded workflow filename as workflow name above is just Linux again
+ group: pytest-openssl-${{ github.event.pull_request.number || github.sha }}
+ cancel-in-progress: true
+
+jobs:
+ autotools:
+ name: ${{ matrix.build.name }}
+ runs-on: 'ubuntu-latest'
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ build:
+ - name: quictls
+ install: >-
+ libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libev-dev libc-ares-dev
+ configure: >-
+ PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" LDFLAGS="-Wl,-rpath,$HOME/all/lib"
+ --with-ngtcp2=$HOME/all --enable-warnings --enable-werror --enable-debug
+ --with-test-nghttpx="$HOME/all/bin/nghttpx"
+ ngtcp2-configure: >-
+ --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
+
+ steps:
+ - run: |
+ sudo apt-get update
+ sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
+ sudo apt-get install apache2 apache2-dev
+ sudo python3 -m pip install impacket pytest cryptography
+ name: 'install prereqs and impacket, pytest, crypto'
+
+ - run: |
+ git clone --depth=1 -b openssl-3.0.7+quic https://github.com/quictls/openssl
+ cd openssl
+ ./config --prefix=$HOME/all --libdir=$HOME/all/lib
+ make install_sw
+ name: 'install quictls'
+
+ - run: |
+ git clone --depth=1 -b v0.8.0 https://github.com/ngtcp2/nghttp3
+ cd nghttp3
+ autoreconf -fi
+ ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-lib-only
+ make install
+ name: 'install nghttp3'
+
+ - run: |
+ git clone --depth=1 -b v0.12.1 https://github.com/ngtcp2/ngtcp2
+ cd ngtcp2
+ autoreconf -fi
+ ./configure ${{ matrix.build.ngtcp2-configure }} --with-openssl
+ make install
+ name: 'install ngtcp2'
+
+ - run: |
+ git clone --depth=1 -b v1.51.0 https://github.com/nghttp2/nghttp2
+ cd nghttp2
+ autoreconf -fi
+ ./configure --prefix=$HOME/all PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig" --enable-http3
+ make install
+ name: 'install nghttp2'
+
+ - uses: actions/checkout@v3
+
+ - run: autoreconf -fi
+ name: 'autoreconf'
+
+ - run: ./configure --with-openssl=$HOME/all ${{ matrix.build.configure }}
+ name: 'configure'
+
+ - run: make V=1
+ name: 'make'
+
+ - run: make V=1 examples
+ name: 'make examples'
+
+ - run: make V=1 -C tests
+ name: 'make tests'
+
+ - run: pytest -v
+ name: 'run pytest'
+ env:
+ TFLAGS: "${{ matrix.build.tflags }}"