name: CI

on: [push, pull_request]

jobs:

  test-ubuntu-latest:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: make
      # Fail build if there are warnings
      # build with TLS just for compilation coverage
      run: make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
    - name: test
      run: |
        sudo apt-get install tcl8.5
        ./runtest --verbose
    - name: module api test
      run: ./runtest-moduleapi --verbose

  build-ubuntu-old:
    runs-on: ubuntu-16.04
    steps:
    - uses: actions/checkout@v2
    - name: make
      run: make REDIS_CFLAGS='-Werror'

  build-macos-latest:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2
    - name: make
      run: make REDIS_CFLAGS='-Werror'

  build-32bit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: make
      run: |
        sudo apt-get update && sudo apt-get install libc6-dev-i386
        make REDIS_CFLAGS='-Werror' 32bit

  build-libc-malloc:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: make
      run: make REDIS_CFLAGS='-Werror' MALLOC=libc

  build-centos7-jemalloc:
    runs-on: ubuntu-latest
    container: centos:7
    steps:
    - uses: actions/checkout@v2
    - name: make
      run: |
        yum -y install gcc make
        make REDIS_CFLAGS='-Werror'
        
  build-freebsd:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v2
    - name: make
      uses: vmactions/freebsd-vm@v0.1.0
      with:
        usesh: true
        prepare: pkg install -y gmake
        run: gmake
