Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 1 | |
| 2 | name: Spec Compliance |
| 3 | |
| 4 | on: |
| 5 | schedule: |
| 6 | - cron: "0 0 * * 3" |
| 7 | |
| 8 | jobs: |
| 9 | h2spec: |
| 10 | name: h2spec |
| 11 | runs-on: ${{ matrix.os }} |
| 12 | strategy: |
| 13 | matrix: |
| 14 | include: |
| 15 | - TARGET: linux-glibc |
| 16 | CC: gcc |
| 17 | os: ubuntu-latest |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 18 | steps: |
Tim Duesterhus | 4bb778b | 2022-04-09 22:08:41 +0200 | [diff] [blame] | 19 | - uses: actions/checkout@v3 |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 20 | - name: Install h2spec |
Ilya Shipitsin | fbf2857 | 2022-05-05 15:15:12 +0500 | [diff] [blame] | 21 | id: install-h2spec |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 22 | run: | |
Ilya Shipitsin | fbf2857 | 2022-05-05 15:15:12 +0500 | [diff] [blame] | 23 | H2SPEC_VERSION=`curl --silent "https://api.github.com/repos/summerwind/h2spec/releases/latest" | jq -r -j '.tag_name'` |
| 24 | curl -fsSL https://github.com/summerwind/h2spec/releases/download/${H2SPEC_VERSION}/h2spec_linux_amd64.tar.gz -o h2spec.tar.gz |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 25 | tar xvf h2spec.tar.gz |
| 26 | sudo install -m755 h2spec /usr/local/bin/h2spec |
Ilya Shipitsin | fbf2857 | 2022-05-05 15:15:12 +0500 | [diff] [blame] | 27 | echo "::set-output name=version::${H2SPEC_VERSION}" |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 28 | - name: Compile HAProxy with ${{ matrix.CC }} |
| 29 | run: | |
| 30 | make -j$(nproc) all \ |
| 31 | ERR=1 \ |
| 32 | TARGET=${{ matrix.TARGET }} \ |
| 33 | CC=${{ matrix.CC }} \ |
Willy Tarreau | 16bfd73 | 2022-02-23 17:58:46 +0100 | [diff] [blame] | 34 | DEBUG="-DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DDEBUG_POOL_INTEGRITY" \ |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 35 | USE_OPENSSL=1 |
| 36 | sudo make install |
| 37 | - name: Show HAProxy version |
| 38 | id: show-version |
| 39 | run: | |
| 40 | echo "::group::Show dynamic libraries." |
| 41 | if command -v ldd > /dev/null; then |
| 42 | # Linux |
| 43 | ldd $(which haproxy) |
| 44 | else |
| 45 | # macOS |
| 46 | otool -L $(which haproxy) |
| 47 | fi |
| 48 | echo "::endgroup::" |
| 49 | haproxy -vv |
| 50 | echo "::set-output name=version::$(haproxy -v |awk 'NR==1{print $3}')" |
| 51 | - name: Launch HAProxy ${{ steps.show-version.outputs.version }} |
| 52 | run: haproxy -f .github/h2spec.config -D |
Ilya Shipitsin | fbf2857 | 2022-05-05 15:15:12 +0500 | [diff] [blame] | 53 | - name: Run h2spec ${{ steps.install-h2spec.outputs.version }} |
Tim Duesterhus | cdaa38e | 2020-11-13 20:15:53 +0100 | [diff] [blame] | 54 | run: h2spec -Svtk -h 127.0.0.1 -p 8443 |