# This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml
name: CMake on a single platform

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Release

jobs:
  build:
    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
    # You can convert this to a matrix build if you need cross-platform coverage.
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
    runs-on: ubuntu-latest

    permissions:
      checks: write
      pull-requests: write

    steps:
    - uses: actions/checkout@v3

    - name: Install Conan
      id: conan
      uses: turtlebrowser/get-conan@main

    - name: Create profile
      run: conan profile detect --force

    - name: Install dependencies
      run: conan install . --build=missing

    - name: Configure CMake
      working-directory: ${{github.workspace}}/build/${{env.BUILD_TYPE}}/generators
      run: cmake ../../.. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}

    - name: Build
      working-directory: ${{github.workspace}}/build/${{env.BUILD_TYPE}}/generators
      # Build your program with the given configuration
      run: cmake --build .

    - name: Test
      working-directory: ${{github.workspace}}/build/${{env.BUILD_TYPE}}/generators
      # Execute tests defined by the CMake configuration.
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
      run: ./testFFT --order rand --warn NoAssertions --reporter JUnit::out=${{github.workspace}}/result-junit.xml --reporter console::out=-

    - name: Publish Test Results
      uses: EnricoMi/publish-unit-test-result-action@v2
      if: always()
      with:
        files: |
          ${{github.workspace}}/result-junit.xml