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 --- .github/actions/setup-vtest/action.yml | 34 ++++++++++++++++++++++ .github/workflows/aws-lc-template.yml | 11 +------ .github/workflows/fedora-rawhide.yml | 3 +- .github/workflows/openssl-nodeprecated.yml | 4 +-- .github/workflows/quictls.yml | 11 +------ .github/workflows/vtest.yml | 17 +---------- .github/workflows/wolfssl.yml | 11 +------ 7 files changed, 40 insertions(+), 51 deletions(-) create mode 100644 .github/actions/setup-vtest/action.yml diff --git a/.github/actions/setup-vtest/action.yml b/.github/actions/setup-vtest/action.yml new file mode 100644 index 000000000..0d9d85e24 --- /dev/null +++ b/.github/actions/setup-vtest/action.yml @@ -0,0 +1,34 @@ +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" + + + diff --git a/.github/workflows/aws-lc-template.yml b/.github/workflows/aws-lc-template.yml index 60f6e607f..056d26336 100644 --- a/.github/workflows/aws-lc-template.yml +++ b/.github/workflows/aws-lc-template.yml @@ -16,9 +16,6 @@ jobs: 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: | @@ -52,16 +49,10 @@ jobs: 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 diff --git a/.github/workflows/fedora-rawhide.yml b/.github/workflows/fedora-rawhide.yml index 8965e464b..38808f510 100644 --- a/.github/workflows/fedora-rawhide.yml +++ b/.github/workflows/fedora-rawhide.yml @@ -29,8 +29,7 @@ jobs: 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 diff --git a/.github/workflows/openssl-nodeprecated.yml b/.github/workflows/openssl-nodeprecated.yml index 6038870f0..6a4037c0c 100644 --- a/.github/workflows/openssl-nodeprecated.yml +++ b/.github/workflows/openssl-nodeprecated.yml @@ -23,9 +23,7 @@ jobs: 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 diff --git a/.github/workflows/quictls.yml b/.github/workflows/quictls.yml index a6870dbb5..a8b2f96b4 100644 --- a/.github/workflows/quictls.yml +++ b/.github/workflows/quictls.yml @@ -18,9 +18,6 @@ jobs: 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 @@ -42,16 +39,10 @@ jobs: 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' }} diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml index 4e859a4c8..3a75b525a 100644 --- a/.github/workflows/vtest.yml +++ b/.github/workflows/vtest.yml @@ -48,12 +48,6 @@ jobs: 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 # @@ -93,9 +87,7 @@ jobs: 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 @@ -136,16 +128,9 @@ jobs: 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' }} diff --git a/.github/workflows/wolfssl.yml b/.github/workflows/wolfssl.yml index 7dbc6a279..d99e084ab 100644 --- a/.github/workflows/wolfssl.yml +++ b/.github/workflows/wolfssl.yml @@ -14,9 +14,6 @@ jobs: 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 @@ -38,16 +35,10 @@ jobs: 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 -- 2.46.0.windows.1