kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

test.yml (8651B)


      1 name: Test
      2 on: push
      3 jobs:
      4   ubuntu22-clang17-x86_64:
      5     runs-on: ubuntu-22.04
      6     steps:
      7     - name: Checkout
      8       uses: actions/checkout@v4
      9     - name: Tests
     10       env:
     11         SDE_LINUX: ${{ secrets.SDE_LINUX }}
     12         TMP_DIR: ${{ runner.temp }}
     13       run: |
     14         set -e
     15         sudo apt-get update && sudo apt-get install -y ninja-build
     16         wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 17
     17         curl -o "$TMP_DIR/sde.tar.bz2" -L "$SDE_LINUX"
     18         mkdir "$TMP_DIR/sde-bin"
     19         tar -C "$TMP_DIR/sde-bin" -xjf "$TMP_DIR/sde.tar.bz2" --strip 1
     20         sudo ln -s $TMP_DIR/sde-bin/sde64 /usr/bin/sde
     21         ci/run.sh build-release -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DKFR_ARCH_TESTS=sse2,sse3,sse41,avx,avx2,avx512 -DKFR_ARCH=avx2 -DKFR_USE_SDE=ON -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_BUILD_TYPE=Release
     22 
     23   ubuntu22-clang17-arm:
     24     runs-on: ubuntu-22.04
     25     steps:
     26     - name: Checkout
     27       uses: actions/checkout@v4
     28     - name: Tests
     29       run: |
     30         set -e
     31         sudo apt-get update && sudo apt-get install -y ninja-build g++-arm-linux-gnueabihf qemu qemu-system-arm qemu-user
     32         wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 17
     33         ci/run.sh build-release -DENABLE_EXAMPLES=OFF -DCLANG_SUFFIX=-17 -DCMAKE_BUILD_TYPE=Release -DGCC_VER=11 -DCMAKE_TOOLCHAIN_FILE=../cmake/arm.cmake
     34 
     35   ubuntu22-clang17-arm64:
     36     runs-on: ubuntu-22.04
     37     steps:
     38     - name: Checkout
     39       uses: actions/checkout@v4
     40     - name: Tests
     41       run: |
     42         set -e
     43         sudo apt-get update && sudo apt-get install -y ninja-build g++-aarch64-linux-gnu qemu qemu-system-arm qemu-user
     44         wget -O - https://apt.llvm.org/llvm.sh | sudo bash -s - 17
     45         ci/run.sh build-release -DENABLE_EXAMPLES=OFF -DCLANG_SUFFIX=-17 -DCMAKE_BUILD_TYPE=Release -DGCC_VER=11 -DCMAKE_TOOLCHAIN_FILE=../cmake/aarch64.cmake
     46       
     47   ubuntu24-gcc13-x86_64:
     48     runs-on: ubuntu-24.04
     49     steps:
     50     - name: Checkout
     51       uses: actions/checkout@v4
     52     - name: Tests
     53       run: |
     54         sudo apt-get update && sudo apt-get install -y ninja-build g++-13
     55         ci/run.sh build-release -DKFR_ARCH=target -DCMAKE_CXX_COMPILER=g++-13 -DCMAKE_BUILD_TYPE=Release
     56 
     57   windows2022-clang17-x86:
     58     runs-on: windows-2022
     59     steps:
     60     - name: Checkout
     61       uses: actions/checkout@v4
     62     - name: Tests
     63       env:
     64         SDE_WINDOWS: ${{ secrets.SDE_WINDOWS }}
     65         TMP_DIR: ${{ runner.temp }}
     66       shell: cmd
     67       run: |
     68         choco install llvm --version 17.0.6 --no-progress -y
     69         choco install ninja --no-progress -y
     70         curl -o "%TMP_DIR%/sde.zip" -L %SDE_WINDOWS%
     71         "C:\Program Files\7-Zip\7z.exe" x -oC:\sde "%TMP_DIR%/sde.zip"
     72         call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
     73         set CXXFLAGS=-m32
     74         set PATH=C:\sde;%PATH%
     75         ci\run.cmd build-release -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DKFR_ARCH_TESTS=sse2,ssse3,sse42,avx,avx2,avx512 -DKFR_ENABLE_MULTIARCH=ON -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/LLVM/bin/lld-link.exe" -DKFR_USE_SDE=ON -DKFR_ARCH=sse2 -DCMAKE_BUILD_TYPE=Release -DCMAKE_AR="C:/Program Files/LLVM/bin/llvm-lib.exe"
     76 
     77   windows2022-clang17-x86_64:
     78     runs-on: windows-2022
     79     steps:
     80     - name: Checkout
     81       uses: actions/checkout@v4
     82     - name: Tests
     83       env:
     84         SDE_WINDOWS: ${{ secrets.SDE_WINDOWS }}
     85         TMP_DIR: ${{ runner.temp }}
     86       shell: cmd
     87       run: |
     88         choco install llvm --version 17.0.6 --no-progress -y
     89         choco install ninja --no-progress -y
     90         curl -o "%TMP_DIR%/sde.zip" -L %SDE_WINDOWS%
     91         "C:\Program Files\7-Zip\7z.exe" x -oC:\sde "%TMP_DIR%/sde.zip"
     92         call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
     93         set PATH=C:\sde;%PATH%
     94         ci\run.cmd build-release -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DKFR_ARCH_TESTS=sse2,ssse3,sse42,avx,avx2,avx512 -DKFR_ENABLE_MULTIARCH=ON -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/LLVM/bin/lld-link.exe" -DKFR_USE_SDE=ON -DKFR_ARCH=sse2 -DCMAKE_BUILD_TYPE=Release -DCMAKE_AR="C:/Program Files/LLVM/bin/llvm-lib.exe"
     95 
     96   windows2022-clang17-arm64:
     97     runs-on: windows-2022
     98     steps:
     99     - name: Checkout
    100       uses: actions/checkout@v4
    101     - name: Tests
    102       shell: cmd
    103       run: |
    104         choco install llvm --version 17.0.6 --no-progress -y
    105         choco install ninja --no-progress -y
    106         call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsamd64_arm64.bat"
    107         ci\run.cmd build-release -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang-cl.exe" -DCMAKE_LINKER="C:/Program Files/LLVM/bin/lld-link.exe" -DCMAKE_CXX_COMPILER_TARGET=arm64-pc-windows-msvc -DKFR_ARCH=target -DKFR_SKIP_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_AR="C:/Program Files/LLVM/bin/llvm-lib.exe"
    108 
    109   windows2022-msvc2022-x86:
    110     runs-on: windows-2022
    111     steps:
    112     - name: Checkout
    113       uses: actions/checkout@v4
    114     - name: Tests
    115       env:
    116         SDE_WINDOWS: ${{ secrets.SDE_WINDOWS }}
    117         TMP_DIR: ${{ runner.temp }}
    118       shell: cmd
    119       run: |
    120         choco install ninja --no-progress -y
    121         curl -o "%TMP_DIR%/sde.zip" -L %SDE_WINDOWS%
    122         "C:\Program Files\7-Zip\7z.exe" x -oC:\sde "%TMP_DIR%/sde.zip"
    123         call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
    124         set PATH=C:\sde;%PATH%
    125         ci\run.cmd build-release -DKFR_ARCH_TESTS=sse2,ssse3,sse42,avx,avx2,avx512 -DKFR_ENABLE_MULTIARCH=ON -DKFR_USE_SDE=ON -DKFR_ARCH=sse2 -DCMAKE_BUILD_TYPE=Release
    126 
    127   windows2022-msvc2022-x86_64:
    128     runs-on: windows-2022
    129     steps:
    130     - name: Checkout
    131       uses: actions/checkout@v4
    132     - name: Tests
    133       env:
    134         SDE_WINDOWS: ${{ secrets.SDE_WINDOWS }}
    135         TMP_DIR: ${{ runner.temp }}
    136       shell: cmd
    137       run: |
    138         choco install ninja --no-progress -y
    139         curl -o "%TMP_DIR%/sde.zip" -L %SDE_WINDOWS%
    140         "C:\Program Files\7-Zip\7z.exe" x -oC:\sde "%TMP_DIR%/sde.zip"
    141         call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
    142         set PATH=C:\sde;%PATH%
    143         ci\run.cmd build-release -DKFR_ARCH_TESTS=sse2,ssse3,sse42,avx,avx2,avx512 -DKFR_ENABLE_MULTIARCH=ON -DKFR_USE_SDE=ON -DKFR_ARCH=sse2 -DCMAKE_BUILD_TYPE=Release
    144 
    145   windows2022-clang-android-arm:
    146     runs-on: windows-2022
    147     steps:
    148     - name: Checkout
    149       uses: actions/checkout@v4
    150     - name: Tests
    151       shell: cmd
    152       run: |
    153         choco install ninja --no-progress -y   
    154         ci\run.cmd build-release -DCMAKE_MAKE_PROGRAM=C:\ProgramData\chocolatey\lib\ninja\tools\ninja.exe -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=TRUE -DKFR_SKIP_TESTS=ON -DCMAKE_BUILD_TYPE=Release
    155 
    156   windows2022-clang-android-arm64:
    157     runs-on: windows-2022
    158     steps:
    159     - name: Checkout
    160       uses: actions/checkout@v4
    161     - name: Tests
    162       shell: cmd
    163       run: |
    164         choco install ninja --no-progress -y
    165         ci\run.cmd build-release -DCMAKE_TOOLCHAIN_FILE="%ANDROID_NDK%\build\cmake\android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_ARM_NEON=TRUE -DKFR_SKIP_TESTS=ON -DCMAKE_BUILD_TYPE=Release
    166 
    167   macos13-xcode14-x86_64:
    168     runs-on: macos-13
    169     steps:
    170     - name: Checkout
    171       uses: actions/checkout@v4
    172     - name: Tests
    173       run: |
    174         set -e
    175         brew install ninja
    176         ci/run.sh build-release -DCMAKE_OSX_ARCHITECTURES=x86_64 -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DKFR_ARCH_TESTS=sse42,avx -DKFR_ARCH=target -DCMAKE_BUILD_TYPE=Release      
    177 
    178   macos13-xcode14-arm64:
    179     runs-on: macos-13
    180     steps:
    181     - name: Checkout
    182       uses: actions/checkout@v4
    183     - name: Tests
    184       run: |
    185         set -e
    186         brew install ninja
    187         ci/run.sh build-release -DCMAKE_OSX_ARCHITECTURES=arm64 -DKFR_ENABLE_CAPI_BUILD=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DKFR_ARCH=target -DCMAKE_BUILD_TYPE=Release  -DKFR_SKIP_TESTS=ON
    188 
    189   macos13-xcode14-ios-arm64:
    190     runs-on: macos-13
    191     steps:
    192     - name: Checkout
    193       uses: actions/checkout@v4
    194     - name: Tests
    195       run: |
    196         set -e
    197         brew install ninja
    198         ci/run.sh build-release -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.cmake -DIOS_DEPLOYMENT_TARGET=11.0 -DCMAKE_BUILD_TYPE=Release -DIOS_PLATFORM=OS64 -DIOS_ARCH=arm64 -DCMAKE_MAKE_PROGRAM=/usr/local/bin/ninja -DKFR_SKIP_TESTS=ON