mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-10 18:05:44 +02:00
1. Run CI/Regression tests with HELIO_STACK_CHECK=4096. This will crash if a fiber stack usage goes below this limit. 2. Increase shard queue stack size to 64KB 3. Increase fiber stack size to 40KB on Debug builds. 4. Updated helio has some changes around the TLS socket code. In addition we add a helper script to generate self-signed certificates helpful for local development work. Signed-off-by: Roman Gershman <roman@dragonflydb.io>
77 lines
2.3 KiB
YAML
77 lines
2.3 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"
|
|
volumes:
|
|
- /var/crash:/var/crash
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Print environment info
|
|
run: |
|
|
cat /proc/cpuinfo
|
|
ulimit -a
|
|
env
|
|
- 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 -DHELIO_STACK_CHECK:STRING=4096
|
|
|
|
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' }}
|
|
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY }}
|
|
aws-secret-access-key: ${{ secrets.AWS_S3_ACCESS_SECRET }}
|
|
s3-bucket: ${{ secrets.S3_REGTEST_BUCKET }}
|
|
|
|
- name: Upload logs on failure
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: logs
|
|
path: /tmp/failed/*
|
|
|
|
- name: Copy binary on a self hosted runner
|
|
if: failure()
|
|
run: |
|
|
# We must use sh syntax.
|
|
if [ "$RUNNER_ENVIRONMENT" = "self-hosted" ]; then
|
|
cd ${GITHUB_WORKSPACE}/build
|
|
timestamp=$(date +%Y-%m-%d_%H:%M:%S)
|
|
mv ./dragonfly /var/crash/dragonfy_${timestamp}
|
|
fi
|
|
|
|
lint-test-chart:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/lint-test-chart
|