name: Check test times
on: [push, pull_request]
jobs:
  check-test-times:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Cache
      uses: hendrikmuhs/ccache-action@v1.2
      with:
        key: linux-ci-test-times-${{ github.ref }}
        restore-keys: |
          linux-ci-test-times-${{ github.ref }}
          linux-ci-test-times-refs/heads/master
          linux-ci-test-times-
    - name: Setup
      run: |
        sudo rm /etc/apt/sources.list.d/microsoft-prod.list
        sudo apt update
        sudo apt install -y libboost-dev autoconf automake libtool ccache
    - name: Build
      run: |
        ./autogen.sh
        ./configure --disable-static CC="ccache gcc" CXX="ccache g++" CXXFLAGS="-O2 -g0"
        make -j 4
    - name: Run faster tests
      run: |
        ./test-suite/quantlib-test-suite --logger=JUNIT,warning,faster.xml:HRF,message -- --faster
    - name: Run fast tests
      run: |
        ./test-suite/quantlib-test-suite --logger=JUNIT,warning,fast.xml:HRF,message -- --fast
    - name: Run all tests
      run: |
        ./test-suite/quantlib-test-suite --logger=JUNIT,warning,all.xml:HRF,message
    - name: Save test times
      uses: actions/upload-artifact@v4
      with:
        name: test-reports
        path: ./*.xml
    - name: Check test times
      run: |
        python ./tools/check_test_times.py
