diff options
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r-- | .github/workflows/build.yml | 62 |
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}' |