summaryrefslogtreecommitdiffstats
path: root/deps/hiredis/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to 'deps/hiredis/.github/workflows')
-rw-r--r--deps/hiredis/.github/workflows/build.yml177
-rw-r--r--deps/hiredis/.github/workflows/release-drafter.yml19
-rw-r--r--deps/hiredis/.github/workflows/test.yml100
3 files changed, 296 insertions, 0 deletions
diff --git a/deps/hiredis/.github/workflows/build.yml b/deps/hiredis/.github/workflows/build.yml
new file mode 100644
index 0000000..581800b
--- /dev/null
+++ b/deps/hiredis/.github/workflows/build.yml
@@ -0,0 +1,177 @@
+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@7.0
+ brew link redis@7.0 --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
diff --git a/deps/hiredis/.github/workflows/release-drafter.yml b/deps/hiredis/.github/workflows/release-drafter.yml
new file mode 100644
index 0000000..ec2d88b
--- /dev/null
+++ b/deps/hiredis/.github/workflows/release-drafter.yml
@@ -0,0 +1,19 @@
+name: Release Drafter
+
+on:
+ push:
+ # branches to consider in the event; optional, defaults to all
+ branches:
+ - master
+
+jobs:
+ update_release_draft:
+ runs-on: ubuntu-latest
+ steps:
+ # Drafts your next Release notes as Pull Requests are merged into "master"
+ - uses: release-drafter/release-drafter@v5
+ with:
+ # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
+ config-name: release-drafter-config.yml
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/deps/hiredis/.github/workflows/test.yml b/deps/hiredis/.github/workflows/test.yml
new file mode 100644
index 0000000..1a2c60b
--- /dev/null
+++ b/deps/hiredis/.github/workflows/test.yml
@@ -0,0 +1,100 @@
+name: C/C++ CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ full-build:
+ name: Build all, plus default examples, run tests against redis
+ runs-on: ubuntu-latest
+ env:
+ # the docker image used by the test.sh
+ REDIS_DOCKER: redis:alpine
+
+ steps:
+ - name: Install prerequisites
+ run: sudo apt-get update && sudo apt-get install -y libev-dev libevent-dev libglib2.0-dev libssl-dev valgrind
+ - uses: actions/checkout@v3
+ - name: Run make
+ run: make all examples
+ - name: Run unittests
+ run: make check
+ - name: Run tests with valgrind
+ env:
+ TEST_PREFIX: valgrind --error-exitcode=100
+ SKIPS_ARG: --skip-throughput
+ run: make check
+
+ build-32-bit:
+ name: Build and test minimal 32 bit linux
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install prerequisites
+ run: sudo apt-get update && sudo apt-get install gcc-multilib
+ - uses: actions/checkout@v3
+ - name: Run make
+ run: make all
+ env:
+ PLATFORM_FLAGS: -m32
+ - name: Run unittests
+ env:
+ REDIS_DOCKER: redis:alpine
+ run: make check
+
+ build-arm:
+ name: Cross-compile and test arm linux with Qemu
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ include:
+ - name: arm
+ toolset: arm-linux-gnueabi
+ emulator: qemu-arm
+ - name: aarch64
+ toolset: aarch64-linux-gnu
+ emulator: qemu-aarch64
+
+ steps:
+ - name: Install qemu
+ if: matrix.emulator
+ run: sudo apt-get update && sudo apt-get install -y qemu-user
+ - name: Install platform toolset
+ if: matrix.toolset
+ run: sudo apt-get install -y gcc-${{matrix.toolset}}
+ - uses: actions/checkout@v3
+ - name: Run make
+ run: make all
+ env:
+ CC: ${{matrix.toolset}}-gcc
+ AR: ${{matrix.toolset}}-ar
+ - name: Run unittests
+ env:
+ REDIS_DOCKER: redis:alpine
+ TEST_PREFIX: ${{matrix.emulator}} -L /usr/${{matrix.toolset}}/
+ run: make check
+
+ build-windows:
+ name: Build and test on windows 64 bit Intel
+ runs-on: windows-latest
+ steps:
+ - uses: microsoft/setup-msbuild@v1.0.2
+ - uses: actions/checkout@v3
+ - name: Run CMake (shared lib)
+ run: cmake -Wno-dev CMakeLists.txt
+ - name: Build hiredis (shared lib)
+ run: MSBuild hiredis.vcxproj /p:Configuration=Debug
+ - name: Run CMake (static lib)
+ run: cmake -Wno-dev CMakeLists.txt -DBUILD_SHARED_LIBS=OFF
+ - name: Build hiredis (static lib)
+ run: MSBuild hiredis.vcxproj /p:Configuration=Debug
+ - name: Build hiredis-test
+ run: MSBuild hiredis-test.vcxproj /p:Configuration=Debug
+ # use memurai, redis compatible server, since it is easy to install. Can't
+ # install official redis containers on the windows runner
+ - name: Install Memurai redis server
+ run: choco install -y memurai-developer.install
+ - name: Run tests
+ run: Debug\hiredis-test.exe