CI configuration - dkurt/opencv GitHub Wiki
OpenCV CI Build parameters
List of Pull requests builders
Frequently used:
Name | Description |
---|---|
Docs |
Linux-based documentation builder. Additionally provides some sanity/linter checks about code |
Linux x64 |
Ubuntu-based image with enabled IPPICV |
Linux OpenCL |
Ubuntu-based image with enabled IPPICV and OpenCL (Intel iGPU device) |
Linux AVX2 |
Ubuntu-based image with enabled CPU_BASELINE=AVX2 |
Linux x64 Debug |
Debug Ubuntu-based build with disabled SIMD intrinsics and other accelerated code paths |
Win64 |
MSVS2015 with enabled IPPICV |
Win64 OpenCL |
MSVS2015 with enabled IPPICV and OpenCL (Intel iGPU device) |
Mac |
macOS X builder |
iOS |
iOS package builder (subset of architectures). Without tests launching |
Android armeabi-v7a |
Linux-based Android build for ARMv7 configuration. Without tests launching |
Extra:
Name | Description |
---|---|
Linux32 |
32-bin Linux (64-bit host OS, but binaries in docker image are all 32-bit - no "cross-compilation") |
Win32 |
32-bit binaries (64-bit host OS) |
ARMv7 |
ARMv7 + NEON. Tests are launched on NVIDIA TK-1 board |
ARMv8 |
aarch64. Tests are launched on NVIDIA TX-1 board |
Android pack |
build Android package (all architectures) |
Custom* |
custom builders for special extra cases |
Pull request common parameters
Parameters can be added into description of opened Pull request. Maintainers can adjust build parameters to extend (some special/extra cases) or reduce (documentation) scope of testing.
Note: Before merging, any reduced validation/testing scope should be normalized and re-launched builds should pass.
**WIP**
- marks PR as WIP. This mode allows to use some extra parameters, like tests/modules filtering. No builders are triggered by default in this mode.force_builders=linux,Docs,Custom
- comma separated list of additional builders (both visibleLinux x64
and internal IDlinux
can be used)force_builders_only=Docs
- comma separated list of builders (both visibleLinux x64
and internal IDlinux
can be used)
Pull request parameters
Some parameters are **WIP**
protected (marked as (WIP only)
). Without **WIP**
flag these parameters are ignored.
Builders for Pull requests with **WIP**
or Custom builders accept all valid parameters.
Parameters below can be applied for all builders (if allowed by **WIP**
mode) or can be targeted for specific builder:
parameter=value
- apply for all builders (if applicable)parameter:Linux x64=value
- apply for specified builder only
High-level builder configuration
buildworker:Custom=linux-1
(builder specific) - select assigned build worker (we using machines with different hardware/software setup).build_image:Custom=ubuntu-clang:18.04
(builder specific) - select builder high-level configuration (docker_image
is deprecated alias on this parameter)
Binaries build configuration
-
CPU_BASELINE:Custom=AVX512_SKX
(WIP only) - force CMake CPU_BASELINE option -
CPU_DISPATCH:Linux AVX2=AVX512_SKX
(WIP only) - force CMake CPU_DISPATCH option -
CXXFLAGS:Mac=-std=c++11
(WIP only) - set CMake C++ flags -
CXXFLAGS_EXTRA:Custom Win=/std:c++17
(WIP only) - append CMake C++ flags -
build_contrib=OFF
- build with/without opencv_contrib modules (speedup build) -
build_examples=OFF
(WIP only) - disable examples build (speedup build) -
build_shared=OFF
- select shared/static build. Static build with examples is slow in MSVS case. -
build_world=OFF
- build opencv_world -
build_pkgconfig=ON
- control building of pkgconfig configuration -
build_compiler
- selects MSVC compiler (vc14 - MSVS2015, vc15 - MSVS2017, vc16 - MSVS2019) -
build_platform
- selects MSVC platform x64, Win32, ARM
Optimizations:
with_tbb=ON
- use TBBbuild_tbb=ON
- force building TBB from sourcesdisable_ipp
- disable IPP/IPPICV
Other special parameters:
android_pack_config:Android Pack=ndk-19.config.py
test_gradle:Android Pack
- force or disable Gradle buildsbuild_gapi_standalone:Win64=ON
- G-API module extra testing
Binaries testing configuration
test_modules=dnn,python2,python3,java
(WIP only) - comma separated list of tested OpenCV modulestest_filter=*AlexNet*
(WIP only) - apply tests filter
Other specific cases:
test_opencl:Custom=ON
- force testing of OpenCLtest_bigdata:Custom=ON
(builder specific) - run huge testsbuild_parallel_tests=1
- run up to N tests in parallel
build_image
List of supported build_image
list
Linux Note:
linux-1,2,4
means list of supported workers (specifybuildworker:Custom=linux-1,linux-2,linux-4
)
Basic:
ubuntu:14.04
ubuntu:16.04
ubuntu:18.04
ubuntu32:16.04
(linux-1,2,4
)fedora:28
,fedora:29
(linux-1,2,4
)
Compiler:
ubuntu-clang:18.04
Threading:
openmp:16.04
(linux-1,2,4
)
HighGUI:
qt:16.04
(linux-1,2,4
)
Video I/O:
ffmpeg-master
(linux-1,2,4
)gstreamer:16.04
,gstreamer:14.04
(linux-1,2,4
)
Javascript:
docs-js
(linux-1,2,4
onDocs
builder only)javascript
(linux-1,2,4
onCustom
builder only)
Android:
android-gradle
(linux-4
onAndroid*
builders only)
DNN backends testing:
ubuntu-openvino:16.04
ubuntu-openvino:18.04
ubuntu-openvino-2018r5:16.04
ubuntu-openvino-2018r5:18.04
ubuntu-openvino-2019r1:16.04
ubuntu-openvino-2019r1:18.04
ubuntu-vulkan:16.04
- for testing DNN Vulkan backendubuntu-cuda:18.04
(linux-?
) - CUDA 10.0 with CUDNN?
Cross-compilation for other platforms:
powerpc64le
(linux-1,2,4
onCustom
builder only) - validate VSX SIMD intrinsics. Extra external buildbot for OpenCV on PowerPC
Other:
ubuntu-cuda:16.04
(linux-1,2,4
) - CUDA 8.0, no tests
and many deprecated/special build_images for coverage/valgrind/etc
build_image
list
Windows msvs2015
,msvs2015-win32
msvs2017
,msvs2017-win32
(windows-1
)msvs2019
,msvs2019-win32
(windows-1
)openvino-2019r1
Useful extra parameters: test_opencl=ON
build_image
list
macOS X openvino-2019r1
Parameters for special validation cases
- SIMD optimizations validation:
force_builders=Linux AVX2,Custom
buildworker:Custom=linux-1,linux-2,linux-4
build_image:Custom=powerpc64le
disable_ipp=ON
- DNN testing (OpenVINO or new layers, tests set changes):
force_builders=Custom,Custom Win,Custom Mac
build_image:Custom=ubuntu-openvino-2019r1:16.04
build_image:Custom Win=openvino-2019r1
build_image:Custom Mac=openvino-2019r1
test_modules:Custom=dnn,python2,python3,java
test_modules:Custom Win=dnn,python2,python3,java
test_modules:Custom Mac=dnn,python2,python3,java
buildworker:Custom=linux-1
test_opencl:Custom=ON
test_bigdata:Custom=1
test_filter:Custom=*
- OpenCL testing
force_builders=Custom,Linux AVX2,Linux OpenCL
build_image:Custom=ubuntu:18.04
buildworker:Custom=linux-5
test_opencl:Custom=ON
build_image:Linux AVX2=ubuntu:18.04
buildworker:Linux AVX2=linux-3
test_opencl:Linux AVX2=ON
Buildworkers special H/W capabilities
linux-1:
- Intel(R) Neural Compute Stick 2 (NCS2 (USB 03e7:2485), MyriadX)
linux-2:
- Intel(R) Movidius(TM) Neural Compute Stick (NCS (USB 03e7:2150), Myriad2)