chore: run regression tests with epoll (#4426)

* chore: run regression tests with epoll

Signed-off-by: kostas <kostas@dragonflydb.io>
This commit is contained in:
Kostas Kyrimis 2025-01-20 14:18:21 +02:00 committed by GitHub
parent 4acafa3d47
commit 85cc443448
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 32 additions and 1 deletions

View file

@ -28,6 +28,9 @@ inputs:
s3-bucket:
required: true
type: string
epoll:
required: false
type: string
runs:
using: "composite"
@ -46,7 +49,15 @@ runs:
export DRAGONFLY_PATH="${GITHUB_WORKSPACE}/${{inputs.build-folder-name}}/${{inputs.dfly-executable}}"
export UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 # to crash on errors
timeout 50m pytest -m "${{inputs.filter}}" --durations=10 --timeout=300 --color=yes --json-report --json-report-file=report.json dragonfly --log-cli-level=INFO || code=$?
if [[ "${{inputs.epoll}}" == 'true' ]]; then
export FILTER="${{inputs.filter}} and not exclude_epoll"
# Run only replication tests with epoll
timeout 50m pytest -m "$FILTER" --durations=10 --timeout=300 --color=yes --json-report --json-report-file=report.json dragonfly --df force_epoll=true --log-cli-level=INFO || code=$?
else
export FILTER="${{inputs.filter}}"
# Run only replication tests with epoll
timeout 50m pytest -m "$FILTER" --durations=10 --timeout=300 --color=yes --json-report --json-report-file=report.json dragonfly --log-cli-level=INFO || code=$?
fi
# timeout returns 124 if we exceeded the timeout duration
if [[ $code -eq 124 ]]; then

View file

@ -11,8 +11,13 @@ jobs:
matrix:
# Test of these containers
container: ["ubuntu-dev:20"]
proactor: [Uring, Epoll]
build-type: [Debug, Release]
runner: [ubuntu-latest, [self-hosted, linux, ARM64]]
exclude:
- proactor: Epoll
build-type: Debug
runs-on: ${{ matrix.runner }}
container:
@ -31,6 +36,7 @@ jobs:
cat /proc/cpuinfo
ulimit -a
env
- name: Configure & Build
run: |
# -no-pie to disable address randomization so we could symbolize stacktraces
@ -52,6 +58,9 @@ jobs:
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_S3_ACCESS_SECRET }}
s3-bucket: ${{ secrets.S3_REGTEST_BUCKET }}
# Chain ternary oprator of the form (which can be nested)
# (expression == condition && <true expression> || <false expression>)
epoll: ${{ matrix.proactor == 'Epoll' && 'true' || '' }}
- name: Upload logs on failure
if: failure()