summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: 25d4fa39ee666daad3780febd854d1ad47d8733f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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 dependencies
        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

  centos8:
    runs-on: ubuntu-latest
    container: centos:8
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          repository: ${{ env.GITHUB_REPOSITORY }}
          ref: ${{ env.GITHUB_HEAD_REF }}

      - name: Install dependencies
        run: |
          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

      - 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}'