mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 08:38:27 -05:00
178 lines
5.0 KiB
YAML
178 lines
5.0 KiB
YAML
name: Build and test
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
ubuntu:
|
|
name: Ubuntu
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
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 update
|
|
sudo apt-get install -y redis-server valgrind libevent-dev
|
|
|
|
- name: Build using cmake
|
|
env:
|
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
|
CFLAGS: -Werror
|
|
CXXFLAGS: -Werror
|
|
run: mkdir build && cd build && cmake .. && make
|
|
|
|
- name: Build using makefile
|
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
|
|
|
- name: Run tests
|
|
env:
|
|
SKIPS_AS_FAILS: 1
|
|
TEST_SSL: 1
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
# - name: Run tests under valgrind
|
|
# env:
|
|
# SKIPS_AS_FAILS: 1
|
|
# TEST_PREFIX: valgrind --error-exitcode=99 --track-origins=yes --leak-check=full
|
|
# run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
centos7:
|
|
name: CentOS 7
|
|
runs-on: ubuntu-latest
|
|
container: centos:7
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
|
|
yum -y --enablerepo=remi install redis
|
|
yum -y install gcc gcc-c++ make openssl openssl-devel cmake3 valgrind libevent-devel
|
|
|
|
- name: Build using cmake
|
|
env:
|
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
|
CFLAGS: -Werror
|
|
CXXFLAGS: -Werror
|
|
run: mkdir build && cd build && cmake3 .. && make
|
|
|
|
- name: Build using Makefile
|
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
|
|
|
- name: Run tests
|
|
env:
|
|
SKIPS_AS_FAILS: 1
|
|
TEST_SSL: 1
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
- name: Run tests under valgrind
|
|
env:
|
|
SKIPS_AS_FAILS: 1
|
|
TEST_SSL: 1
|
|
TEST_PREFIX: valgrind --error-exitcode=99 --track-origins=yes --leak-check=full
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
centos8:
|
|
name: RockyLinux 8
|
|
runs-on: ubuntu-latest
|
|
container: rockylinux:8
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
dnf -y upgrade --refresh
|
|
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
|
dnf -y module install redis:remi-6.0
|
|
dnf -y group install "Development Tools"
|
|
dnf -y install openssl-devel cmake valgrind libevent-devel
|
|
|
|
- name: Build using cmake
|
|
env:
|
|
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL:BOOL=ON -DENABLE_SSL_TESTS:BOOL=ON -DENABLE_ASYNC_TESTS:BOOL=ON
|
|
CFLAGS: -Werror
|
|
CXXFLAGS: -Werror
|
|
run: mkdir build && cd build && cmake .. && make
|
|
|
|
- name: Build using Makefile
|
|
run: USE_SSL=1 TEST_ASYNC=1 make
|
|
|
|
- name: Run tests
|
|
env:
|
|
SKIPS_AS_FAILS: 1
|
|
TEST_SSL: 1
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
- name: Run tests under valgrind
|
|
env:
|
|
SKIPS_AS_FAILS: 1
|
|
TEST_SSL: 1
|
|
TEST_PREFIX: valgrind --error-exitcode=99 --track-origins=yes --leak-check=full
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
freebsd:
|
|
runs-on: macos-12
|
|
name: FreeBSD
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Build in FreeBSD
|
|
uses: vmactions/freebsd-vm@v0
|
|
with:
|
|
prepare: pkg install -y gmake cmake
|
|
run: |
|
|
mkdir build && cd build && cmake .. && make && cd ..
|
|
gmake
|
|
|
|
macos:
|
|
name: macOS
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew install openssl redis@6.2
|
|
brew link redis@6.2 --force
|
|
|
|
- name: Build hiredis
|
|
run: USE_SSL=1 make
|
|
|
|
- name: Run tests
|
|
env:
|
|
TEST_SSL: 1
|
|
run: $GITHUB_WORKSPACE/test.sh
|
|
|
|
windows:
|
|
name: Windows
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
choco install -y ninja memurai-developer
|
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
|
- name: Build hiredis
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_EXAMPLES=ON
|
|
ninja -v
|
|
|
|
- name: Run tests
|
|
run: |
|
|
./build/hiredis-test.exe
|
|
|
|
- name: Install Cygwin Action
|
|
uses: cygwin/cygwin-install-action@v2
|
|
with:
|
|
packages: make git gcc-core
|
|
|
|
- name: Build in cygwin
|
|
env:
|
|
HIREDIS_PATH: ${{ github.workspace }}
|
|
run: |
|
|
make clean && make
|