name: Trick CI

on: [push]

jobs:
  ubuntu-1604:
    runs-on: ubuntu-18.04
    container: docker://ubuntu:16.04
    steps:
    - name: Checkout repository
      uses: actions/checkout@master
    
    - name: update apt
      run: apt-get update
   
    - name: Install dependencies
      run: >
        apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev
        libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig
        zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev
        libgtest-dev cmake
        
    - name: Build gtest
      run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/

    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    - name: Run tests
      run: make test  

  ubuntu-1804:
    runs-on: ubuntu-18.04
    container: docker://ubuntu:18.04
    steps:
    - name: Checkout repository
      uses: actions/checkout@master
    
    - name: update apt
      run: apt-get update
   
    - name: Install dependencies
      run: >
        apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev
        libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig
        zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev
        libgtest-dev cmake
        
    - name: Build gtest
      run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/

    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    - name: Run tests
      run: make test
      
  ubuntu-1904:
    runs-on: ubuntu-18.04
    container: docker://ubuntu:19.04
    steps:
    - name: Checkout repository
      uses: actions/checkout@master
    
    - name: update apt
      run: apt-get update
   
    - name: Install dependencies
      run: >
        apt-get install -y git bison curl flex g++ libx11-dev libxml2-dev libxt-dev
        libmotif-common libmotif-dev make openjdk-8-jdk python2.7-dev swig
        zlib1g-dev llvm llvm-dev clang libclang-dev libudunits2-dev
        libgtest-dev cmake
        
    - name: Build gtest
      run: cd /usr/src/gtest && cmake . && make && cp libgtest* /usr/lib/

    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    - name: Run tests
      run: make test
  
  macOS:
    runs-on: macOS-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@master
   
    - name: Install gtest
      run: |
        wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
        tar xzvf release-1.8.0.tar.gz
        cd googletest-release-1.8.0/googletest
        cmake .
        make
        make install
    
    - name: Install dependencies
      run: |
        # sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg -target /
        brew cask install xquartz
        brew install llvm swig udunits openmotif
    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    
    - name: Run tests
      run: |
        export MAKEFLAGS=-j4
        make test
        
  centos-7:
    runs-on: ubuntu-18.04
    container: docker://centos:7
    steps:
    - name: Checkout repository
      uses: actions/checkout@master

    - name: Install the epel repository and update yum
      run: yum -y install epel-release && yum -y update
    
    - name: Install dependencies 
      run: >
        yum install -y git bison flex gcc gcc-c++ make which clang clang-devel 
        llvm llvm-devel llvm-static libxml2-devel libX11-devel libXt-devel 
        ncurses-devel openmotif openmotif-devel perl perl-Digest-MD5 
        python-devel swig zlib-devel udunits2 udunits2-devel 
        java-1.8.0-openjdk-devel gtest-devel
    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    
    - name: Run tests
      run: make test
  
  fedora-30:
    runs-on: ubuntu-18.04
    container: docker://fedora:30
    steps:
    - name: Checkout repository
      uses: actions/checkout@master

    - name: Install dependencies
      run: >
        dnf install -y git bison flex gcc gcc-c++ libxml2-devel make openmotif
        openmotif-devel python-devel perl swig zlib-devel llvm llvm-devel llvm-static
        clang clang-devel perl-Text-Balanced perl-Digest-MD5 udunits2 udunits2-devel
        java-1.8.0-openjdk-devel ncurses-devel which
    
    - name: Install gtest
      run:  dnf install -y gtest-devel

    - name: Build Trick
      run: |
        export MAKEFLAGS=-j4
        ./configure
        make
    
    - name: Run tests
      run: make test