Also skip builds on non-Windows platforms when only Windows build files have changed. This should reduce the number of useless builds and the associated waiting time and chance of spurious failures, freeing resources for new PRs. Closes #10742
129 lines
3.5 KiB
YAML
129 lines
3.5 KiB
YAML
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# SPDX-License-Identifier: curl
|
|
|
|
name: pytest
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- '*/ci'
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.azure-pipelines.yml'
|
|
- '.circleci/**'
|
|
- '.cirrus.yml'
|
|
- 'appveyor.yml'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
- 'winbuild/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
- '.azure-pipelines.yml'
|
|
- '.circleci/**'
|
|
- '.cirrus.yml'
|
|
- 'appveyor.yml'
|
|
- 'packages/**'
|
|
- 'plan9/**'
|
|
- 'projects/**'
|
|
- 'winbuild/**'
|
|
|
|
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.8+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.13.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.52.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'
|
|
|
|
- run: |
|
|
git clone --depth=1 -b master https://github.com/icing/mod_h2
|
|
cd mod_h2
|
|
autoreconf -fi
|
|
./configure PKG_CONFIG_PATH="$HOME/all/lib/pkgconfig"
|
|
make
|
|
sudo make install
|
|
name: 'install mod_h2'
|
|
|
|
- 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 }}"
|