Ensuring we produce a valid JSON in case of empty string and -nan #447
This file contains 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-notls: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev | |
- name: Build | |
run: autoreconf -ivf && ./configure --disable-tls && make -j | |
build-ubuntu: | |
strategy: | |
matrix: | |
platform: [ubuntu-latest, ubuntu-20.04] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get install lcov autoconf automake pkg-config libevent-dev libpcre3-dev libssl-dev | |
- name: Build | |
run: autoreconf -ivf && ./configure --enable-code-coverage && make -j | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
architecture: x64 | |
- name: Install Python dependencies | |
run: pip install -r ./tests/test_requirements.txt | |
- name: Install Redis | |
run: | | |
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg | |
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list | |
sudo apt-get -qq update | |
sudo apt-get install redis | |
sudo service redis-server stop | |
- name: Increase connection limit | |
run: | | |
sudo sysctl -w net.ipv4.tcp_fin_timeout=10 | |
sudo sysctl -w net.ipv4.tcp_tw_reuse=1 | |
ulimit -n 40960 | |
- name: Generate TLS test certificates | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
./tests/gen-test-certs.sh | |
- name: Test OSS TCP | |
timeout-minutes: 10 | |
run: | | |
./tests/run_tests.sh | |
- name: Test OSS TCP TLS | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS=1 ./tests/run_tests.sh | |
- name: Test OSS TCP TLS v1.2 | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS_PROTOCOLS='TLSv1.2' VERBOSE=1 TLS=1 ./tests/run_tests.sh | |
- name: Test OSS TCP TLS v1.3 | |
if: matrix.platform == 'ubuntu-latest' | |
timeout-minutes: 10 | |
run: | | |
TLS_PROTOCOLS='TLSv1.3' VERBOSE=1 TLS=1 ./tests/run_tests.sh | |
- name: Test OSS-CLUSTER TCP | |
timeout-minutes: 10 | |
run: | | |
OSS_STANDALONE=0 OSS_CLUSTER=1 VERBOSE=1 \ | |
./tests/run_tests.sh | |
- name: Test OSS-CLUSTER TCP TLS | |
timeout-minutes: 10 | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
OSS_STANDALONE=0 OSS_CLUSTER=1 TLS=1 VERBOSE=1 \ | |
./tests/run_tests.sh | |
- name: Capture code coverage | |
timeout-minutes: 6 | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
make code-coverage-capture | |
bash <(curl -s https://codecov.io/bash) -f memtier_benchmark-*-coverage.info || echo "Codecov did not collect coverage reports" | |
build-macos: | |
strategy: | |
matrix: | |
openssl: ["1.1", "3.0"] | |
runs-on: macos-latest | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: brew install autoconf automake libtool libevent pkg-config openssl@${{ matrix.openssl }} | |
- name: Build | |
run: autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@${{ matrix.openssl }}`/lib/pkgconfig ./configure && make | |
build-macos-openssl-1-0-2: | |
strategy: | |
matrix: | |
platform: [macos-latest] | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install dependencies | |
run: brew install autoconf automake libtool libevent pkg-config | |
- name: Install openssl v1.0.2 | |
run: brew install rbenv/tap/openssl@1.0 | |
- name: Build | |
run: autoreconf -ivf && PKG_CONFIG_PATH=`brew --prefix openssl@1.0`/lib/pkgconfig ./configure && make |