name: Open Distro for Elasticsearch ODBC Driver

on: [push, pull_request]

env:
  CI_OUTPUT_PATH: "sql-odbc/ci-output"
  ODBC_LIB_PATH: "./build/odbc/lib"
  ODBC_BIN_PATH: "./build/odbc/bin"
  ODBC_BUILD_PATH: "./build/odbc/build"
  AWS_SDK_INSTALL_PATH: "./build/aws-sdk/install"

jobs:    
  build-mac:
    runs-on: macos-latest
    defaults:
      run:
        working-directory: sql-odbc
    steps:
    - uses: actions/checkout@v1
    - name: run-cppcheck
      run: |
        brew install cppcheck
        sh run_cppcheck.sh
    - name: upload-cppcheck-results
      if: failure()
      uses: actions/upload-artifact@v1
      with:
        name: cppcheck-results
        path: sql-odbc/cppcheck-results.log
    - name: get-dependencies
      run: |
        brew unlink unixodbc
        brew install curl
        brew install cmake
        brew install libiodbc
    - name: configure-and-build-driver
      run: |
        ./build_mac_release64.sh
    #- name: test
    #  run: | 
    #    bash ./run_test_runner.sh
    - name: build-installer
      if: success()
      run: |
        cd cmake-build64
        cmake ../src 
        make
        cpack .
        cd ..
    - name: create-output
      if: success()
      run: |
        mkdir build-output
        mkdir test-output
        mkdir installer
        cp ./build/odbc/lib/*.dylib build-output/
        cp ./build/odbc/lib/*.a build-output/
        cp ./cmake-build64/*.pkg installer/
    # cp $(ls -d ./build/odbc/bin/* | grep -v "\.") build-output
    #    cp ./bin64/*.html test-output
    #    cp ./bin64/*.log test-output
    - name: upload-build
      if: success()
      uses: actions/upload-artifact@v1
      with:
        name: mac64-build
        path: sql-odbc/build-output
    - name: upload-installer
      if: success()
      uses: actions/upload-artifact@v1
      with:
        name: mac64-installer
        path: sql-odbc/installer
    #- name: upload-test-results
    #  if: success()
    #  uses: actions/upload-artifact@v1
    #  with:
    #    name: mac-test-results
    #    path: test-output
  build-windows32:
    runs-on: windows-latest
    defaults:
      run:
        working-directory: sql-odbc
    steps:
    - uses: actions/checkout@v1
    - name: Get specific version CMake, v3.18.3
      uses: lukka/get-cmake@v3.18.3
    - name: add-msbuild-to-path
      uses: microsoft/setup-msbuild@v1.0.2
    - name: configure-and-build-driver
      run: |
        .\build_win_release32.ps1
    - name: build-installer
      if: success()
      run: |
        .\scripts\build_installer.ps1 Release Win32 .\src $Env:ODBC_BUILD_PATH $Env:AWS_SDK_INSTALL_PATH
    #- name: test
    #  run: |
    #    cp .\\libraries\\VisualLeakDetector\\bin32\\*.* .\\bin32\\Release
    #    cp .\\libraries\\VisualLeakDetector\\lib32\\*.lib .\\lib32\\Release
    #    .\run_test_runner.bat
    - name: prepare-output
      if: always()
      run: |
        .\scripts\prepare_ci_output.ps1 $Env:ODBC_BIN_PATH $Env:ODBC_LIB_PATH $Env:ODBC_BUILD_PATH
    - name: upload-build
      if: always()
      uses: actions/upload-artifact@v1
      with:
        name: windows32-build
        path: sql-odbc/ci-output/build
    - name: upload-installer
      if: always()
      uses: actions/upload-artifact@v1
      with:
        name: windows32-installer
        path: sql-odbc/ci-output/installer
    #- name: upload-test-results
    #  if: always()
    #  uses: actions/upload-artifact@v1
    #  with:
    #    name: windows-test-results
    #    path: $CI_OUTPUT_PATH/test
  build-windows64:
    runs-on: windows-latest
    defaults:
      run:
        working-directory: sql-odbc
    steps:
    - uses: actions/checkout@v1
    - name: Get specific version CMake, v3.18.3
      uses: lukka/get-cmake@v3.18.3
    - name: add-msbuild-to-path
      uses: microsoft/setup-msbuild@v1.0.2
    - name: configure-and-build-driver
      run: |
        .\build_win_release64.ps1
    - name: build-installer
      if: success()
      run: |
        .\scripts\build_installer.ps1 Release x64 .\src $Env:ODBC_BUILD_PATH $Env:AWS_SDK_INSTALL_PATH
    #- name: test
    #  run: |
    #    cp .\\libraries\\VisualLeakDetector\\bin64\\*.* .\\bin64\\Release
    #    cp .\\libraries\\VisualLeakDetector\\lib64\\*.lib .\\lib64\\Release
    #    .\run_test_runner.bat
    - name: prepare-output
      if: always()
      run: |
        .\scripts\prepare_ci_output.ps1 $Env:ODBC_BIN_PATH $Env:ODBC_LIB_PATH $Env:ODBC_BUILD_PATH
    - name: upload-build
      if: always()
      uses: actions/upload-artifact@v1
      with:
        name: windows64-build
        path: sql-odbc/ci-output/build
    - name: upload-installer
      if: always()
      uses: actions/upload-artifact@v1
      with:
        name: windows64-installer
        path: sql-odbc/ci-output/installer
    #- name: upload-test-results
    #  if: always()
    #  uses: actions/upload-artifact@v1
    #  with:
    #    name: windows-test-results
    #    path: sql-odbc/ci-output/test-output