Update #33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| pull_request: | |
| jobs: | |
| build-test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| build_type: [Release] | |
| include: | |
| - os: ubuntu-latest | |
| build_type: Debug | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} | |
| - name: Build | |
| run: cmake --build build -j | |
| - name: Test | |
| if: runner.os != 'Windows' | |
| run: ctest --test-dir build --output-on-failure | |
| sanitize-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure (ASAN/UBSAN) | |
| run: cmake -S . -B build-sanitize -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS='-fsanitize=address,undefined -fno-omit-frame-pointer' -DCMAKE_EXE_LINKER_FLAGS='-fsanitize=address,undefined' | |
| - name: Build | |
| run: cmake --build build-sanitize -j | |
| - name: Test | |
| run: ctest --test-dir build-sanitize --output-on-failure | |
| clang-format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: sudo apt-get update && sudo apt-get install -y clang-format | |
| - run: make fmt-check | |
| docker-smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build image | |
| run: docker build -f docker/Dockerfile -t pomai-cache:ci . | |
| - name: Run smoke test | |
| run: | | |
| docker run --rm -d --name pomai-cache-ci -p 6391:6379 pomai-cache:ci | |
| sleep 2 | |
| printf '*1\r\n$4\r\nPING\r\n' | nc 127.0.0.1 6391 | head -n 1 | grep PONG | |
| docker rm -f pomai-cache-ci | |
| crash-suite-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug | |
| - name: Build | |
| run: cmake --build build -j | |
| - name: Run crash suite | |
| run: cd build && ./pomai_cache_crash_harness everysec | |
| tier-bench-smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Configure | |
| run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release | |
| - name: Build | |
| run: cmake --build build -j | |
| - name: Run tier bench smoke | |
| run: | | |
| ./build/pomai_cache_server --port 6393 --ssd-enabled --ssd-value-min-bytes 256 --data-dir ./bench_smoke_data & | |
| PID=$! | |
| sleep 1 | |
| ./build/pomai_cache_netbench --port 6393 --workload tier_on_large_values --duration 2 --warmup 1 --clients 2 --pipeline 2 --json tier_smoke.json | |
| kill -INT $PID | |
| wait $PID |