summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml62
1 files changed, 44 insertions, 18 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2ce06a1..c1e4f55 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -3,6 +3,7 @@ on: [push, pull_request]
jobs:
ubuntu:
+ name: Ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout code
@@ -13,19 +14,20 @@ jobs:
- name: Install dependencies
run: |
- sudo add-apt-repository -y ppa:chris-lea/redis-server
+ 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
+ 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
+ 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-ubuntu && cd build-ubuntu && cmake ..
- name: Build using makefile
- run: USE_SSL=1 make
+ run: USE_SSL=1 TEST_ASYNC=1 make
- name: Run tests
env:
@@ -36,10 +38,11 @@ jobs:
# - name: Run tests under valgrind
# env:
# SKIPS_AS_FAILS: 1
- # TEST_PREFIX: valgrind --track-origins=yes --leak-check=full
+ # 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:
@@ -53,17 +56,17 @@ jobs:
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
+ 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
+ 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-centos7 && cd build-centos7 && cmake3 ..
- name: Build using Makefile
- run: USE_SSL=1 make
+ run: USE_SSL=1 TEST_ASYNC=1 make
- name: Run tests
env:
@@ -75,12 +78,13 @@ jobs:
env:
SKIPS_AS_FAILS: 1
TEST_SSL: 1
- TEST_PREFIX: valgrind --track-origins=yes --leak-check=full
+ 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: centos:8
+ container: rockylinux:8
steps:
- name: Checkout code
uses: actions/checkout@v2
@@ -93,17 +97,17 @@ jobs:
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
+ 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
+ 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-centos8 && cd build-centos8 && cmake ..
- name: Build using Makefile
- run: USE_SSL=1 make
+ run: USE_SSL=1 TEST_ASYNC=1 make
- name: Run tests
env:
@@ -115,10 +119,29 @@ jobs:
env:
SKIPS_AS_FAILS: 1
TEST_SSL: 1
- TEST_PREFIX: valgrind --track-origins=yes --leak-check=full
+ 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:
+ - name: Checkout code
+ uses: actions/checkout@v2
+ with:
+ repository: ${{ env.GITHUB_REPOSITORY }}
+ ref: ${{ env.GITHUB_HEAD_REF }}
+
+ - 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:
- name: Checkout code
@@ -129,7 +152,8 @@ jobs:
- name: Install dependencies
run: |
- brew install openssl redis
+ brew install openssl redis@6.2
+ brew link redis@6.2 --force
- name: Build hiredis
run: USE_SSL=1 make
@@ -140,6 +164,7 @@ jobs:
run: $GITHUB_WORKSPACE/test.sh
windows:
+ name: Windows
runs-on: windows-latest
steps:
- name: Checkout code
@@ -167,16 +192,17 @@ jobs:
uses: egor-tensin/setup-cygwin@v3
with:
platform: x64
- packages: cmake gcc-core gcc-g++
+ packages: make git gcc-core
- name: Build in cygwin
env:
HIREDIS_PATH: ${{ github.workspace }}
run: |
build_hiredis() {
+ git config --global --add safe.directory "$(cygpath -u $HIREDIS_PATH)"
cd $(cygpath -u $HIREDIS_PATH)
- rm -rf build && mkdir build && cd build
- cmake .. -G "Unix Makefiles" && make VERBOSE=1
+ git clean -xfd
+ make
}
build_hiredis
shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'