Skip to content

Release 0.12.0

Release 0.12.0 #866

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
checkers:
name: Run static checkers
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run clang-format style check (.c and .h)
uses: jidicula/[email protected]
ubuntu:
name: ${{ matrix.cmake-build-type }}-build [${{ matrix.compiler }}, cmake-${{ matrix.cmake-version }} sanitizer="${{ matrix.sanitizer }}"]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
compiler: [gcc-11, clang-12]
cmake-version: [3.19]
cmake-build-type: [Release, RelWithDebInfo]
sanitizer: ["", thread, undefined, leak, address]
include:
- compiler: gcc-7
cmake-version: 3.14
cmake-build-type: Release
sanitizer: ""
- compiler: gcc-8
cmake-version: 3.15
cmake-build-type: Release
sanitizer: ""
- compiler: clang-7
cmake-version: 3.17
cmake-build-type: Release
sanitizer: ""
- compiler: clang-9
cmake-version: 3.18
cmake-build-type: Release
sanitizer: ""
steps:
- name: Prepare
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: libevent-dev libuv1-dev libev-dev libglib2.0-dev ${{ matrix.compiler }}
version: 1.0
- name: Install hiredis
env:
VERSION: 1.2.0
run: |
curl -L https://github.com/redis/hiredis/archive/v${VERSION}.tar.gz | tar -xz
cmake -S hiredis-${VERSION} -B hiredis-build -DENABLE_SSL=ON
sudo make -C hiredis-build install
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1
with:
cmake-version: ${{ matrix.cmake-version }}
- uses: actions/checkout@v3
- name: Create build folder
run: cmake -E make_directory build
- name: Generate makefiles
shell: bash
env:
CC: ${{ matrix.compiler }}
working-directory: build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DENABLE_SSL=ON -DENABLE_IPV6_TESTS=ON -DDOWNLOAD_HIREDIS=OFF -DUSE_SANITIZER=${{ matrix.sanitizer }} ..
- name: Build
shell: bash
working-directory: build
run: VERBOSE=1 make
- name: Setup clusters
shell: bash
working-directory: build
run: make start
- name: Wait for clusters to start..
uses: kibertoad/[email protected]
with:
time: '20s'
- name: Run tests
shell: bash
working-directory: build
run: make CTEST_OUTPUT_ON_FAILURE=1 test
- name: Teardown clusters
working-directory: build
shell: bash
run: make stop
- name: Build examples
shell: bash
env:
CC: ${{ matrix.compiler }}
run: |
examples/using_cmake_externalproject/build.sh
examples/using_cmake_separate/build.sh
examples/using_cmake_and_make_mixed/build.sh
examples/using_make/build.sh
macos:
name: macOS
runs-on: macos-latest
steps:
- name: Prepare
run: |
brew install cmake ninja openssl
- uses: actions/checkout@v3
- name: Build
run: |
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_SSL=ON
ninja -v
windows:
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: ilammy/msvc-dev-cmd@v1
- name: Prepare
run: |
choco install -y ninja
vcpkg install --triplet x64-windows libevent
- name: Build
run: |
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
ninja -v
windows-mingw64:
name: Windows (MinGW64)
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Set up MinGW
uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: |
mingw-w64-x86_64-gcc
mingw-w64-x86_64-cmake
mingw-w64-x86_64-ninja
mingw-w64-x86_64-libevent
- name: Build
shell: msys2 {0}
run: |
mkdir build && cd build
cmake .. -G Ninja
cmake --build .