Get our bearings #4
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | | ||
sudo apt-get update | ||
sudo apt-get install -y valgrind libevent-dev cmake libssl-dev | ||
# TODO: Test against Redis and KeyDB in addition to Valkey | ||
- name: Install Valkey | ||
run: | | ||
git clone --depth 1 --branch 7.2.5 https://github.com/valkey-io/valkey.git | ||
cd valkey && sudo BUILD_TLS=yes make install | ||
- name: Build using cmake | ||
env: | ||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL: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 | ||
working-directory: tests | ||
env: | ||
SKIPS_AS_FAILS: 1 | ||
TEST_SSL: 1 | ||
run: ./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 git gcc gcc-c++ make openssl openssl-devel cmake3 valgrind libevent-devel | ||
- name: Install Valkey | ||
run: | | ||
git clone --depth 1 --branch 7.2.5 https://github.com/valkey-io/valkey.git | ||
cd valkey && BUILD_TLS=yes make install | ||
- name: Build using cmake | ||
env: | ||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL: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 | ||
working-directory: tests | ||
env: | ||
SKIPS_AS_FAILS: 1 | ||
TEST_SSL: 1 | ||
run: ./test.sh | ||
- name: Run tests under valgrind | ||
working-directory: tests | ||
env: | ||
SKIPS_AS_FAILS: 1 | ||
TEST_SSL: 1 | ||
TEST_PREFIX: valgrind --error-exitcode=99 --track-origins=yes --leak-check=full | ||
run: ./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: Install Valkey | ||
run: | | ||
git clone --depth 1 --branch 7.2.5 https://github.com/valkey-io/valkey.git | ||
cd valkey && BUILD_TLS=yes make install | ||
- name: Build using cmake | ||
env: | ||
EXTRA_CMAKE_OPTS: -DENABLE_EXAMPLES:BOOL=ON -DENABLE_SSL: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 | ||
working-directory: tests | ||
env: | ||
SKIPS_AS_FAILS: 1 | ||
TEST_SSL: 1 | ||
run: ./test.sh | ||
- name: Run tests under valgrind | ||
working-directory: tests | ||
env: | ||
SKIPS_AS_FAILS: 1 | ||
TEST_SSL: 1 | ||
TEST_PREFIX: valgrind --error-exitcode=99 --track-origins=yes --leak-check=full | ||
run: ./test.sh | ||
freebsd: | ||
runs-on: ubuntu-latest | ||
name: FreeBSD | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Build in FreeBSD | ||
uses: vmactions/[email protected] | ||
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 valkey | ||
- name: Build hiredis | ||
run: USE_SSL=1 make | ||
- name: Run tests | ||
working-directory: tests | ||
env: | ||
TEST_SSL: 1 | ||
run: ./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 libvalkey | ||
run: | | ||
mkdir build && cd build | ||
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_EXAMPLES=ON | ||
ninja -v | ||
- name: List all files | ||
run: | | ||
Get-ChildItem -Recurse -File | ForEach-Object { Write-Host $_.FullName } | ||
shell: pwsh | ||
- name: Run tests | ||
run: | | ||
./tests/client_test.exe | ||
- name: Install Cygwin Action | ||
uses: cygwin/cygwin-install-action@v2 | ||
with: | ||
packages: make git gcc-core | ||
- name: Build in cygwin | ||
env: | ||
LIBVALKEY_PATH: ${{ github.workspace }} | ||
run: | | ||
make clean && make |