name: CMake build

on:
  push:
  pull_request:
  schedule:
    - cron: '0 0 1 * *'

jobs:
  build:
    strategy:
      matrix:
        os:
          [
            ubuntu-latest,
            macos-latest,
            windows-latest,
          ]

    runs-on: ${{ matrix.os }}

    env:
      BUILD: _build

    steps:
      - uses: actions/checkout@v2

      - name: Prepare build directory
        run: mkdir ${{ env.BUILD }}

      - name: Configure
        run: cmake -S . -B ${{ env.BUILD }}

      - name: Build
        run: cmake --build ${{ env.BUILD }}

      - name: Test
        run: ctest --test-dir ${{ env.BUILD }} -V -C Debug
