dragonfly/.github/workflows/regression-tests.yml
Roman Gershman e21ba0b3d9
chore: symbolize stack traces in tests upon crash (#3714)
We disable address space randomization when building the binary
and use addr2line to symbolize the stacktrace if it exists.

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-09-16 13:43:16 +03:00

61 lines
1.7 KiB
YAML

name: Regression Tests
on:
schedule:
- cron: "0 0/3 * * *"
workflow_dispatch:
jobs:
build:
strategy:
matrix:
# Test of these containers
container: ["ubuntu-dev:20"]
build-type: [Debug, Release]
runner: [ubuntu-latest, [self-hosted, linux, ARM64]]
runs-on: ${{ matrix.runner }}
container:
image: ghcr.io/romange/${{ matrix.container }}
options: --security-opt seccomp=unconfined --sysctl "net.ipv6.conf.all.disable_ipv6=0"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Print cpu info
run: cat /proc/cpuinfo
- name: Configure & Build
run: |
# -no-pie to disable address randomization so we could symbolize stacktraces
cmake -B ${GITHUB_WORKSPACE}/build -DCMAKE_BUILD_TYPE=${{matrix.build-type}} -GNinja \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DPRINT_STACKTRACES_ON_SIGNAL=ON \
-DCMAKE_CXX_FLAGS=-no-pie
cd ${GITHUB_WORKSPACE}/build && ninja dragonfly
pwd
ls -l ..
- name: Run regression tests action
uses: ./.github/actions/regression-tests
with:
dfly-executable: dragonfly
gspace-secret: ${{ secrets.GSPACES_BOT_DF_BUILD }}
build-folder-name: build
filter: ${{ matrix.build-type == 'Release' && 'not dbg_only' || 'not opt_only' }}
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: logs
path: /tmp/failed/*
lint-test-chart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/lint-test-chart