reference: https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action
preparing coredump limits, installing VTest are now served by dedicated
composite action
--- /dev/null
+name: 'setup VTest'
+description: 'ssss'
+
+runs:
+ using: "composite"
+ steps:
+
+ - name: Setup coredumps
+ if: ${{ startsWith(matrix.os, 'ubuntu-') }}
+ shell: bash
+ run: |
+ sudo sysctl -w fs.suid_dumpable=1
+ sudo sysctl kernel.core_pattern=/tmp/core.%h.%e.%t
+
+ - name: Setup ulimit for core dumps
+ shell: bash
+ run: |
+ # This is required for macOS which does not actually allow to increase
+ # the '-n' soft limit to the hard limit, thus failing to run.
+ ulimit -n 65536
+ ulimit -c unlimited
+
+ - name: Install VTest
+ shell: bash
+ run: |
+ scripts/build-vtest.sh
+
+ - name: Install problem matcher for VTest
+ shell: bash
+ # This allows one to more easily see which tests fail.
+ run: echo "::add-matcher::.github/vtest.json"
+
+
+
if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v5
- - name: Install VTest
- run: |
- scripts/build-vtest.sh
- name: Determine latest AWS-LC release
id: get_aws_lc_release
run: |
ldd $(which haproxy)
haproxy -vv
echo "version=$(haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
- - name: Install problem matcher for VTest
- run: echo "::add-matcher::.github/vtest.json"
+ - uses: ./.github/actions/setup-vtest
- name: Run VTest for HAProxy
id: vtest
run: |
- # This is required for macOS which does not actually allow to increase
- # the '-n' soft limit to the hard limit, thus failing to run.
- ulimit -n 65536
- # allow to catch coredumps
- ulimit -c unlimited
make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Run Unit tests
id: unittests
run: |
dnf -y install awk diffutils git pcre-devel zlib-devel pcre2-devel 'perl(FindBin)' perl-IPC-Cmd 'perl(File::Copy)' 'perl(File::Compare)' lua-devel socat findutils systemd-devel clang
dnf -y install 'perl(FindBin)' 'perl(File::Compare)' perl-IPC-Cmd 'perl(File::Copy)' glibc-devel.i686 lua-devel.i686 lua-devel.x86_64 systemd-devel.i686 zlib-ng-compat-devel.i686 pcre-devel.i686 libatomic.i686
- - name: Install VTest
- run: scripts/build-vtest.sh
+ - uses: ./.github/actions/setup-vtest
- name: Install QuicTLS
run: QUICTLS=yes QUICTLS_EXTRA_ARGS="${{ matrix.platform.QUICTLS_EXTRA_ARGS }}" scripts/build-ssl.sh
- name: Build contrib tools
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- - name: Install VTest
- run: |
- scripts/build-vtest.sh
+ - uses: ./.github/actions/setup-vtest
- name: Compile HAProxy
run: |
make DEFINE="-DOPENSSL_API_COMPAT=0x10100000L -DOPENSSL_NO_DEPRECATED" -j3 CC=gcc ERR=1 TARGET=linux-glibc USE_OPENSSL=1
if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v5
- - name: Install VTest
- run: |
- scripts/build-vtest.sh
- name: Install apt dependencies
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
ldd $(which haproxy)
haproxy -vv
echo "version=$(haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
- - name: Install problem matcher for VTest
- run: echo "::add-matcher::.github/vtest.json"
+ - uses: ./.github/actions/setup-vtest
- name: Run VTest for HAProxy
id: vtest
run: |
- # This is required for macOS which does not actually allow to increase
- # the '-n' soft limit to the hard limit, thus failing to run.
- ulimit -n 65536
- # allow to catch coredumps
- ulimit -c unlimited
make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Show VTest results
if: ${{ failure() && steps.vtest.outcome == 'failure' }}
with:
fetch-depth: 100
- - name: Setup coredumps
- if: ${{ startsWith(matrix.os, 'ubuntu-') }}
- run: |
- sudo sysctl -w fs.suid_dumpable=1
- sudo sysctl kernel.core_pattern=/tmp/core.%h.%e.%t
-
#
# Github Action cache key cannot contain comma, so we calculate it based on job name
#
run: |
brew install socat
brew install lua
- - name: Install VTest
- run: |
- scripts/build-vtest.sh
+ - uses: ./.github/actions/setup-vtest
- name: Install SSL ${{ matrix.ssl }}
if: ${{ matrix.ssl && matrix.ssl != 'stock' && steps.cache_ssl.outputs.cache-hit != 'true' }}
run: env ${{ matrix.ssl }} scripts/build-ssl.sh
echo "::endgroup::"
haproxy -vv
echo "version=$(haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
- - name: Install problem matcher for VTest
- # This allows one to more easily see which tests fail.
- run: echo "::add-matcher::.github/vtest.json"
- name: Run VTest for HAProxy ${{ steps.show-version.outputs.version }}
id: vtest
run: |
- # This is required for macOS which does not actually allow to increase
- # the '-n' soft limit to the hard limit, thus failing to run.
- ulimit -n 65536
- ulimit -c unlimited
make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Show VTest results
if: ${{ failure() && steps.vtest.outcome == 'failure' }}
if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v5
- - name: Install VTest
- run: |
- scripts/build-vtest.sh
- name: Install apt dependencies
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
ldd $(which haproxy)
haproxy -vv
echo "version=$(haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
- - name: Install problem matcher for VTest
- run: echo "::add-matcher::.github/vtest.json"
+ - uses: ./.github/actions/setup-vtest
- name: Run VTest for HAProxy
id: vtest
run: |
- # This is required for macOS which does not actually allow to increase
- # the '-n' soft limit to the hard limit, thus failing to run.
- ulimit -n 65536
- # allow to catch coredumps
- ulimit -c unlimited
make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Run Unit tests
id: unittests