diff options
Diffstat (limited to 'deps/hiredis/.github/workflows')
-rw-r--r-- | deps/hiredis/.github/workflows/build.yml | 177 | ||||
-rw-r--r-- | deps/hiredis/.github/workflows/release-drafter.yml | 19 | ||||
-rw-r--r-- | deps/hiredis/.github/workflows/test.yml | 100 |
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 |