mirror of
https://github.com/Tencent/ncnn.git
synced 2026-10-25 01:59:58 +08:00
347 lines
12 KiB
YAML
347 lines
12 KiB
YAML
name: test-coverage
|
|
on: [push, pull_request]
|
|
jobs:
|
|
linux-gcc-gpu:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: cache-vulkansdk
|
|
id: cache-vulkansdk
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: "1.1.114.0"
|
|
key: vulkansdk-linux-x86_64-1.1.114.0
|
|
- name: vulkansdk
|
|
if: steps.cache-vulkansdk.outputs.cache-hit != 'true'
|
|
run: |
|
|
wget https://sdk.lunarg.com/sdk/download/1.1.114.0/linux/vulkansdk-linux-x86_64-1.1.114.0.tar.gz?Human=true -O vulkansdk-linux-x86_64-1.1.114.0.tar.gz
|
|
tar -xf vulkansdk-linux-x86_64-1.1.114.0.tar.gz
|
|
rm -rf 1.1.114.0/source 1.1.114.0/samples
|
|
find 1.1.114.0 -type f | grep -v -E 'vulkan|glslang' | xargs rm
|
|
- name: cache-swiftshader
|
|
id: cache-swiftshader
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: swiftshader-install
|
|
key: swiftshader-linux-install-20200508
|
|
- name: checkout-swiftshader
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: google/swiftshader
|
|
path: swiftshader
|
|
ref: 2dd864470e310d173d35fa95ca3a14d216734aab
|
|
- name: checkout-swiftshader-submodules
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
git submodule update --init --recursive
|
|
- name: swiftshader
|
|
if: steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
mkdir -p build; cd build
|
|
cmake -DCMAKE_INSTALL_PREFIX=install -DSWIFTSHADER_BUILD_EGL=FALSE -DSWIFTSHADER_BUILD_GLESv2=FALSE -DSWIFTSHADER_BUILD_GLES_CM=FALSE -DSWIFTSHADER_BUILD_VULKAN=TRUE -DSWIFTSHADER_BUILD_PVR=FALSE -DSWIFTSHADER_BUILD_TESTS=FALSE -DSWIFTSHADER_ENABLE_ASTC=FALSE -DSWIFTSHADER_WARNINGS_AS_ERRORS=FALSE -DREACTOR_BACKEND=Subzero -DREACTOR_DEFAULT_OPT_LEVEL=Default -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build . -j 2
|
|
mkdir $GITHUB_WORKSPACE/swiftshader-install
|
|
cp Linux/* $GITHUB_WORKSPACE/swiftshader-install
|
|
- name: configure
|
|
run: export VULKAN_SDK=`pwd`/1.1.114.0/x86_64 && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_AVX2=ON -DNCNN_OPENMP=OFF -DNCNN_VULKAN=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
- name: test
|
|
run: |
|
|
export VK_ICD_FILENAMES="$GITHUB_WORKSPACE/swiftshader-install/vk_swiftshader_icd.json"
|
|
cd build && ctest --output-on-failure -j 2
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-sse2:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_AVX2=OFF -DNCNN_OPENMP=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
- name: test
|
|
run: cd build && ctest --output-on-failure -j 2
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-avx2-omp:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=ON -DNCNN_AVX2=ON -DNCNN_OPENMP=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
- name: test
|
|
run: cd build && ctest --output-on-failure -j 2
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-arm82:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: cache-qemu
|
|
id: cache-qemu
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: qemu-install
|
|
key: qemu-aarch64-install-1
|
|
- name: checkout-qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: qemu/qemu
|
|
path: qemu
|
|
ref: 8746309137ba470d1b2e8f5ce86ac228625db940
|
|
- name: qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd qemu
|
|
./configure --prefix=install --target-list=aarch64-linux-user --disable-system
|
|
make -j2
|
|
make install
|
|
cp -r aarch64-linux-user/install $GITHUB_WORKSPACE/qemu-install
|
|
|
|
- name: aarch64-gnu-toolchain
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install g++-aarch64-linux-gnu
|
|
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_ARM82=ON -DNCNN_OPENMP=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
|
|
- name: test
|
|
run: |
|
|
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
|
|
cd build
|
|
TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j 2
|
|
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-arm82-omp:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: cache-qemu
|
|
id: cache-qemu
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: qemu-install
|
|
key: qemu-aarch64-install-1
|
|
- name: checkout-qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: qemu/qemu
|
|
path: qemu
|
|
ref: 8746309137ba470d1b2e8f5ce86ac228625db940
|
|
- name: qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd qemu
|
|
./configure --prefix=install --target-list=aarch64-linux-user --disable-system
|
|
make -j2
|
|
make install
|
|
cp -r aarch64-linux-user/install $GITHUB_WORKSPACE/qemu-install
|
|
|
|
- name: aarch64-gnu-toolchain
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install g++-aarch64-linux-gnu
|
|
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_RUNTIME_CPU=OFF -DNCNN_ARM82=ON -DNCNN_OPENMP=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
|
|
- name: test
|
|
run: |
|
|
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
|
|
cd build
|
|
TESTS_EXECUTABLE_LOADER=qemu-aarch64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/aarch64-linux-gnu" ctest --output-on-failure -j 2
|
|
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-mipsisa32r6el:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: cache-qemu
|
|
id: cache-qemu
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: qemu-install
|
|
key: qemu-mipsel-install-1
|
|
- name: checkout-qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: qemu/qemu
|
|
path: qemu
|
|
ref: 8746309137ba470d1b2e8f5ce86ac228625db940
|
|
- name: qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd qemu
|
|
./configure --prefix=install --target-list=mipsel-linux-user --disable-system
|
|
make -j2
|
|
make install
|
|
cp -r mipsel-linux-user/install $GITHUB_WORKSPACE/qemu-install
|
|
|
|
- name: mipsisa32r6el-gnu-toolchain
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install g++-mipsisa32r6el-linux-gnu
|
|
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa32r6el-linux-gnu.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
|
|
- name: test
|
|
run: |
|
|
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
|
|
cd build
|
|
TESTS_EXECUTABLE_LOADER=qemu-mipsel TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa32r6el-linux-gnu" ctest --output-on-failure -j 2
|
|
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|
|
|
|
linux-gcc-mipsisa64r6el:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: lcov
|
|
run: sudo apt-get install lcov
|
|
- name: cache-qemu
|
|
id: cache-qemu
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: qemu-install
|
|
key: qemu-mips64el-install-1
|
|
- name: checkout-qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: qemu/qemu
|
|
path: qemu
|
|
ref: 8746309137ba470d1b2e8f5ce86ac228625db940
|
|
- name: qemu
|
|
if: steps.cache-qemu.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd qemu
|
|
./configure --prefix=install --target-list=mips64el-linux-user --disable-system
|
|
make -j2
|
|
make install
|
|
cp -r mips64el-linux-user/install $GITHUB_WORKSPACE/qemu-install
|
|
|
|
- name: mipsisa64r6el-gnuabi64-toolchain
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install g++-mipsisa64r6el-linux-gnuabi64
|
|
|
|
- name: configure
|
|
run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/mipsisa64r6el-linux-gnuabi64.toolchain.cmake -DCMAKE_BUILD_TYPE=debug -DNCNN_COVERAGE=ON -DNCNN_OPENMP=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
- name: build
|
|
run: cmake --build build -j 2
|
|
|
|
- name: test
|
|
run: |
|
|
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
|
|
cd build
|
|
TESTS_EXECUTABLE_LOADER=qemu-mips64el TESTS_EXECUTABLE_LOADER_ARGUMENTS="-L;/usr/mipsisa64r6el-linux-gnuabi64" ctest --output-on-failure -j 2
|
|
|
|
- name: lcov-collect
|
|
run: |
|
|
cd build
|
|
lcov -d ./src -c -o lcov.info
|
|
lcov -r lcov.info '/usr/*' -o lcov.info
|
|
lcov --list lcov.info
|
|
- name: codecov
|
|
uses: codecov/codecov-action@v1.0.11
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
file: build/lcov.info
|