name: test-coverage on: push: branches: [master] paths: - '.github/workflows/test-coverage.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/**' - 'tests/**' - 'toolchains/**' pull_request: branches: [master] paths: - '.github/workflows/test-coverage.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/**' - 'tests/**' - 'toolchains/**' concurrency: group: test-coverage-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: linux-gcc-gpu-t4: runs-on: [self-hosted, linux, t4] steps: - uses: actions/checkout@v4 with: submodules: true - name: build env: CC: gcc CXX: g++ LD_LIBRARY_PATH: /data/action/install/lib64 run: | export VULKAN_SDK=/data/action/osd/1.2.189.0/x86_64 mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_VULKAN=ON -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_AVX2=ON -DNCNN_XOP=OFF -DNCNN_AVXVNNI=OFF -DNCNN_AVX512=ON -DNCNN_AVX512VNNI=ON -DNCNN_OPENMP=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON .. cmake --build . -j 4 - name: test env: LD_LIBRARY_PATH: /data/action/install/lib64 run: cd build && ctest --output-on-failure -j 4 - name: lcov-collect run: | cd build lcov -d ./src -c -o lcov.info lcov -r lcov.info '/usr/*' -o lcov.info lcov -r lcov.info '*/install/*' -o lcov.info lcov -r lcov.info '*/build/*' -o lcov.info lcov --list lcov.info - name: codecov id: codecov continue-on-error: true uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: codecov-vlen256-retry-1 continue-on-error: true id: codecov-vlen256-retry-1 if: steps.codecov.outcome=='failure' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: codecov-vlen256-retry-2 continue-on-error: true id: codecov-vlen256-retry-2 if: steps.codecov-vlen256-retry-1.outcome=='failure' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: codecov-vlen256-retry-3 continue-on-error: true id: codecov-vlen256-retry-3 if: steps.codecov-vlen256-retry-2.outcome=='failure' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: codecov-vlen256-retry-4 continue-on-error: true id: codecov-vlen256-retry-4 if: steps.codecov-vlen256-retry-3.outcome=='failure' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: codecov-vlen256-retry-5 continue-on-error: true id: codecov-vlen256-retry-5 if: steps.codecov-vlen256-retry-4.outcome=='failure' uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build/lcov.info - name: set the status if: always() run: | if ${{ steps.codecov.outcome=='success' || steps.codecov-vlen256-retry-1.outcome=='success' || steps.codecov-vlen256-retry-2.outcome=='success' || steps.codecov-vlen256-retry-3.outcome=='success' || steps.codecov-vlen256-retry-4.outcome=='success' || steps.codecov-vlen256-retry-5.outcome=='success' }}; then echo fine else exit 1 fi linux-gcc-x64-avx512-spr: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: update run: sudo apt-get update - name: gcc12 run: sudo apt-get install gcc-12 g++-12 - name: lcov run: sudo apt-get install lcov - name: Setup SDE binaries uses: petarpetrovt/setup-sde@v2 - name: build-avx512-spr env: CC: gcc-12 CXX: g++-12 run: | mkdir build-avx512-spr && cd build-avx512-spr cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_AVX2=ON -DNCNN_AVX512=ON -DNCNN_AVX512VNNI=ON -DNCNN_AVX512BF16=ON -DNCNN_AVX512FP16=ON -DNCNN_XOP=OFF -DNCNN_OPENMP=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_TESTS=ON .. cmake --build . -j 2 - name: test-avx512-spr run: | cd build-avx512-spr TESTS_EXECUTABLE_LOADER=$SDE_PATH/sde64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-spr;--" ctest --output-on-failure -j 2 - name: lcov-collect run: | cd build-avx512-spr lcov --gcov-tool gcov-12 -d ./src -c -o lcov.info lcov -r lcov.info '/usr/*' -o lcov.info lcov -r lcov.info '*/build-avx512-spr/*' -o lcov.info lcov --list lcov.info - name: codecov-avx512-spr uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} file: build-avx512-spr/lcov.info