Fix sanitizer cmake config for GNU compiler (#24110) #7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux Static CC (Ubuntu 22.04, Python 3.11, Clang) | |
on: | |
workflow_dispatch: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- master | |
- 'releases/**' | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-cc | |
cancel-in-progress: true | |
env: | |
PIP_CACHE_PATH: /mount/caches/pip/linux | |
PYTHON_VERSION: '3.11' | |
jobs: | |
Smart_CI: | |
runs-on: ubuntu-latest | |
outputs: | |
affected_components: "${{ steps.smart_ci.outputs.affected_components }}" | |
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}" | |
steps: | |
- name: checkout action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions/smart-ci | |
- name: Get affected components | |
id: smart_ci | |
uses: ./.github/actions/smart-ci | |
with: | |
repository: ${{ github.repository }} | |
pr: ${{ github.event.number }} | |
commit_sha: ${{ github.sha }} | |
ref_name: ${{ github.ref_name }} | |
component_pattern: "category: (.*)" | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
skip_when_only_listed_labels_set: 'docs' | |
skip_when_only_listed_files_changed: '*.md,*.rst,*.png,*.jpg,*.svg,*/layer_tests_summary/*,*/conformance/*' | |
Build: | |
needs: Smart_CI | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores-32gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04 | |
volumes: | |
- /mount:/mount | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
SCCACHE_IGNORE_SERVER_IO_ERROR: 1 | |
SCCACHE_SERVER_PORT: 35555 | |
SCCACHE_ERROR_LOG: /__w/openvino/sccache_log.txt | |
SCCACHE_LOG: warn | |
GITHUB_WORKSPACE: '/__w/openvino/openvino' | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
INSTALL_DIR: /__w/openvino/openvino/openvino_install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install | |
BUILD_DIR: /__w/openvino/openvino/openvino_build | |
SELECTIVE_BUILD_STAT_DIR: /__w/openvino/openvino/selective_build_stat | |
MODELS_PATH: /__w/openvino/openvino/testdata | |
SCCACHE_AZURE_KEY_PREFIX: ubuntu22_x86_64_itt_clang_Release | |
if: ${{ !needs.smart_ci.outputs.skip_workflow && github.event_name != 'merge_group' }} | |
steps: | |
- name: Set apt retries | |
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries | |
- name: Install git | |
run: | | |
apt-get update | |
apt-get install --assume-yes --no-install-recommends git ca-certificates git-lfs | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.OPENVINO_REPO }} | |
submodules: 'true' | |
- name: Clone test models | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/testdata' | |
path: ${{ env.MODELS_PATH }} | |
lfs: 'true' | |
ref: 'master' | |
# | |
# Print system info | |
# | |
- name: System info | |
uses: ./openvino/.github/actions/system_info | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
bash ${OPENVINO_REPO}/install_build_dependencies.sh | |
# use clang as a default compiler | |
apt --assume-yes install clang | |
update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 | |
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 | |
- name: Install sccache | |
uses: mozilla-actions/sccache-action@v0.0.4 | |
with: | |
version: "v0.7.5" | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
pip-cache-path: ${{ env.PIP_CACHE_PATH }} | |
should-setup-pip-paths: 'true' | |
self-hosted-runner: 'true' | |
- name: Install python dependencies | |
run: | | |
# For running ONNX frontend unit tests | |
python3 -m pip install --force-reinstall -r ${OPENVINO_REPO}/src/frontends/onnx/tests/requirements.txt | |
# For running TensorFlow frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt | |
# For running TensorFlow Lite frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow_lite/tests/requirements.txt | |
# For running Paddle frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt | |
# | |
# Build | |
# | |
- name: CMake configure - CC COLLECT | |
run: | | |
cmake \ | |
-G "${{ env.CMAKE_GENERATOR }}" \ | |
-DCMAKE_CXX_STANDARD=20 \ | |
-DBUILD_SHARED_LIBS=OFF \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_CPPLINT=OFF \ | |
-DENABLE_NCC_STYLE=OFF \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ | |
-DENABLE_PROFILING_ITT=ON \ | |
-DSELECTIVE_BUILD=COLLECT \ | |
-DENABLE_DEBUG_CAPS=ON \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
- name: Cmake build - CC COLLECT | |
run: | | |
cmake --build ${BUILD_DIR} --parallel 8 --config ${{ env.CMAKE_BUILD_TYPE }} | |
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target sea_itt_lib | |
- name: Show sccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
- name: Cmake install - OpenVINO | |
run: | | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_TEST_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake | |
- name: Build C++ samples - OpenVINO build tree | |
run: | | |
cmake -G "${{ env.CMAKE_GENERATOR }}" -DOpenVINO_DIR=${BUILD_DIR} -S ${INSTALL_DIR}/samples/cpp -B ${BUILD_DIR}/cpp_samples | |
cmake --build ${BUILD_DIR}/cpp_samples --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target hello_query_device | |
- name: Build C samples - OpenVINO install tree | |
run: ${INSTALL_DIR}/samples/c/build_samples.sh -i ${INSTALL_DIR} -b ${BUILD_DIR}/c_samples | |
- name: Ctest - OpenVINO unit tests | |
run: ctest -C ${{ env.CMAKE_BUILD_TYPE }} --test-dir ${BUILD_DIR} -V -L UNIT | |
- name: Perform code tracing via ITT collector | |
run: | | |
python3 ${OPENVINO_REPO}/thirdparty/itt_collector/runtool/sea_runtool.py \ | |
--bindir ${OPENVINO_REPO}/bin/intel64/Release -o ${SELECTIVE_BUILD_STAT_DIR}/itt_stat ! \ | |
${OPENVINO_REPO}/bin/intel64/Release/benchmark_app -niter 1 -nireq 1 \ | |
-m ${MODELS_PATH}/models/test_model/test_model_fp32.xml -d CPU | |
- name: Pack Artifacts | |
run: | | |
pushd ${SELECTIVE_BUILD_STAT_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_selective_build_stat.tar.gz * | |
popd | |
pushd ${INSTALL_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz \ | |
install_dependencies/install_openvino_dependencies.sh | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz \ | |
tests/ov_cpu_func_tests \ | |
tests/libopenvino_template_extension.so \ | |
tests/libze_loader.so* \ | |
tests/functional_test_utils/layer_tests_summary/* | |
popd | |
# | |
# Upload build artifacts and logs | |
# | |
- name: Upload build logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: build_logs | |
path: ${{ env.SCCACHE_ERROR_LOG }} | |
if-no-files-found: 'ignore' | |
- name: Upload openvino package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openvino_package | |
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload selective build statistics package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openvino_selective_build_stat | |
path: ${{ env.BUILD_DIR }}/openvino_selective_build_stat.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload OpenVINO tests package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openvino_tests | |
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz | |
if-no-files-found: 'error' | |
CC_Build: | |
name: Conditional Compilation | |
needs: Build | |
timeout-minutes: 20 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores-32gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04 | |
volumes: | |
- /mount:/mount | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
SCCACHE_IGNORE_SERVER_IO_ERROR: 1 | |
SCCACHE_SERVER_PORT: 35555 | |
GITHUB_WORKSPACE: '/__w/openvino/openvino' | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
BUILD_DIR: /__w/openvino/openvino/openvino_build | |
SELECTIVE_BUILD_STAT_DIR: /__w/openvino/openvino/selective_build_stat | |
MODELS_PATH: /__w/openvino/openvino/testdata | |
SCCACHE_AZURE_KEY_PREFIX: ubuntu22_x86_64_cc_Release | |
steps: | |
- name: Set apt retries | |
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries | |
- name: Install git | |
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates git-lfs | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: ${{ env.OPENVINO_REPO }} | |
submodules: 'true' | |
- name: Clone test models | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/testdata' | |
path: ${{ env.MODELS_PATH }} | |
lfs: 'true' | |
ref: 'master' | |
- name: Download selective build statistics package | |
uses: actions/download-artifact@v4 | |
with: | |
name: openvino_selective_build_stat | |
path: ${{ env.SELECTIVE_BUILD_STAT_DIR }} | |
- name: Extract selective build statistics package | |
run: tar -xvzf ${SELECTIVE_BUILD_STAT_DIR}/openvino_selective_build_stat.tar.gz -C ${SELECTIVE_BUILD_STAT_DIR} | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: bash ${OPENVINO_REPO}/install_build_dependencies.sh | |
- name: Install sccache | |
uses: mozilla-actions/sccache-action@v0.0.4 | |
with: | |
version: "v0.7.5" | |
# | |
# Build | |
# | |
- name: CMake configure - CC ON | |
run: | | |
cmake \ | |
-DBUILD_SHARED_LIBS=OFF \ | |
-DENABLE_CPPLINT=OFF \ | |
-DSELECTIVE_BUILD=ON \ | |
-DENABLE_TEMPLATE=OFF \ | |
-DENABLE_INTEL_GPU=OFF \ | |
-DENABLE_OV_TF_FRONTEND=OFF \ | |
-DENABLE_OV_TF_LITE_FRONTEND=OFF \ | |
-DENABLE_OV_PADDLE_FRONTEND=OFF \ | |
-DENABLE_OV_PYTORCH_FRONTEND=OFF \ | |
-DENABLE_OV_ONNX_FRONTEND=OFF \ | |
-DSELECTIVE_BUILD_STAT=${SELECTIVE_BUILD_STAT_DIR}/*.csv \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
- name: Cmake build - CC ON | |
run: cmake --build ${BUILD_DIR} --parallel 8 --target benchmark_app | |
- name: Show ccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
- name: Run with CC-ed runtime | |
run: ${OPENVINO_REPO}/bin/intel64/Release/benchmark_app -niter 1 -nireq 1 -m ${MODELS_PATH}/models/test_model/test_model_fp32.xml -d CPU | |
CPU_Functional_Tests: | |
name: CPU functional tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_cpu_functional_tests.yml | |
with: | |
runner: 'aks-linux-8-cores-32gb' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:22.04' | |
Overall_Status: | |
name: ci/gha_overall_status_linux_cc | |
needs: [Smart_CI, Build, CC_Build, CPU_Functional_Tests] | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check status of all jobs | |
if: >- | |
${{ | |
contains(needs.*.result, 'failure') || | |
contains(needs.*.result, 'cancelled') | |
}} | |
run: exit 1 |