name: cppcheck

on: [push, pull_request]

jobs:
  cppcheck-ubuntu:

    timeout-minutes: 30
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
      with:
        submodules: true

    - name: Checkout cppcheck
      uses: actions/checkout@v3
      with:
        repository: danmar/cppcheck
        path: cppcheck-main

    - name: Build cppcheck
      run: |
        cd cppcheck-main
        make -j$(nproc) cppcheck

    - name: Run cppcheck
      run: |
        cd cppcheck
        ./run.sh

  cppcheck-windows:

    timeout-minutes: 20
    runs-on: windows-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
      with:
        submodules: true

    - name: Checkout cppcheck
      uses: actions/checkout@v3
      with:
        repository: danmar/cppcheck
        path: cppcheck-main

    - name: Build cppcheck
      run: |
        cd cppcheck-main
        & "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\amd64\\msbuild.exe" /m /p:Configuration=Release /p:Platform=x64

    - name: Setup cmake
      uses: lukka/get-cmake@latest

    - name: cmake p2pool
      run: |
        mkdir build
        cd build
        cmake .. -G "Visual Studio 17 2022"

    - name: Run cppcheck
      run: |
        cd cppcheck
        ./run.cmd