name: Spec Compliance on: schedule: - cron: "0 0 * * 3" permissions: contents: read jobs: h2spec: name: h2spec runs-on: ${{ matrix.os }} strategy: matrix: include: - TARGET: linux-glibc CC: gcc os: ubuntu-latest env: H2SPEC_VERSION: '2.6.0' steps: - uses: actions/checkout@v3 - name: Install h2spec run: | curl -fsSL https://github.com/summerwind/h2spec/releases/download/v${H2SPEC_VERSION}/h2spec_linux_amd64.tar.gz -o h2spec.tar.gz tar xvf h2spec.tar.gz sudo install -m755 h2spec /usr/local/bin/h2spec - name: Compile HAProxy with ${{ matrix.CC }} run: | make -j$(nproc) all \ ERR=1 \ TARGET=${{ matrix.TARGET }} \ CC=${{ matrix.CC }} \ DEBUG="-DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DDEBUG_POOL_INTEGRITY" \ USE_OPENSSL=1 sudo make install - name: Show HAProxy version id: show-version run: | echo "::group::Show dynamic libraries." if command -v ldd > /dev/null; then # Linux ldd $(which haproxy) else # macOS otool -L $(which haproxy) fi echo "::endgroup::" haproxy -vv echo "::set-output name=version::$(haproxy -v |awk 'NR==1{print $3}')" - name: Launch HAProxy ${{ steps.show-version.outputs.version }} run: haproxy -f .github/h2spec.config -D - name: Run h2spec run: h2spec -Svtk -h 127.0.0.1 -p 8443