name: Build and test on: [push, pull_request] jobs: ubuntu: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: repository: ${{ env.GITHUB_REPOSITORY }} ref: ${{ env.GITHUB_HEAD_REF }} - name: Install redis-server run: | sudo add-apt-repository -y ppa:chris-lea/redis-server sudo apt-get update sudo apt-get install -y redis-server - name: Build hiredis run: USE_SSL=1 make - name: Run tests run: $GITHUB_WORKSPACE/test.sh centos7: runs-on: ubuntu-latest container: centos:7 steps: - name: Checkout code uses: actions/checkout@v2 with: repository: ${{ env.GITHUB_REPOSITORY }} ref: ${{ env.GITHUB_HEAD_REF }} - name: Install redis-server run: | yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm yum -y --enablerepo=remi install redis yum -y install gcc make openssl-devel - name: Build hiredis run: USE_SSL=1 make - name: Run tests run: $GITHUB_WORKSPACE/test.sh macos: runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@v2 with: repository: ${{ env.GITHUB_REPOSITORY }} ref: ${{ env.GITHUB_HEAD_REF }} - name: Install dependencies run: | brew install openssl redis - name: Build hiredis run: USE_SSL=1 make - name: Run tests run: $GITHUB_WORKSPACE/test.sh windows: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v2 with: repository: ${{ env.GITHUB_REPOSITORY }} ref: ${{ env.GITHUB_HEAD_REF }} - 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: Setup cygwin uses: egor-tensin/setup-cygwin@v3 with: platform: x64 packages: cmake gcc-core gcc-g++ - name: Build in cygwin env: HIREDIS_PATH: ${{ github.workspace }} run: | build_hiredis() { cd $(cygpath -u $HIREDIS_PATH) rm -rf build && mkdir build && cd build cmake .. -G "Unix Makefiles" && make VERBOSE=1 } build_hiredis shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'