# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

jobs:
- job: ubuntu_16_04_mem_pool_on
  displayName: 'Build - Ubuntu 16.04 - With Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'Ubuntu 16.04'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: ubuntu_16_04_mem_pool_off
  displayName: 'Build - Ubuntu 16.04 - No Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'Ubuntu 16.04'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DOATPP_DISABLE_POOL_ALLOCATIONS=ON -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: ubuntu_18_04_mem_pool_on
  displayName: 'Build - Ubuntu 18.04 - With Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'Ubuntu 18.04'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: ubuntu_18_04_mem_pool_off
  displayName: 'Build - Ubuntu 18.04 - No Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'Ubuntu 18.04'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DOATPP_DISABLE_POOL_ALLOCATIONS=ON -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: macOS_mem_pool_on
  displayName: 'Build - macOS - With Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'macOS-10.14'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: macOS_mem_pool_off
  displayName: 'Build - macOS - No Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'macOS-10.14'
  workspace:
    clean: all
  steps:
    - script: |
        mkdir build
    - script: |
        cmake -DOATPP_DISABLE_POOL_ALLOCATIONS=ON -DCMAKE_BUILD_TYPE=Release ..
        make
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        make test ARGS="-V"
      displayName: 'Test'
      workingDirectory: build

- job: windows_mem_pool_off
  displayName: 'Build - Windows - With Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'windows-latest'
  workspace:
    clean: all
  steps:
    - script: |
        MD build
    - script: |
        cmake ..
        cmake --build .
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        oatppAllTests.exe
      displayName: 'Test'
      workingDirectory: build\test\Debug\

- job: windows_mem_pool_on
  displayName: 'Build - Windows - No Memory Pool'
  continueOnError: false
  pool:
    vmImage: 'windows-latest'
  workspace:
    clean: all
  steps:
    - script: |
        MD build
    - script: |
        cmake -DOATPP_DISABLE_POOL_ALLOCATIONS=ON ..
        cmake --build .
      displayName: 'CMake'
      workingDirectory: build

    - script: |
        oatppAllTests.exe
      displayName: 'Test'
      workingDirectory: build\test\Debug\