From 7f84123a153afbcba4739566d8264505a715de3f Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Mon, 2 Feb 2026 18:18:06 +0200 Subject: [PATCH 01/37] test: run build on hosted grid --- .github/workflows/PR-4.x.yaml | 227 ++++++++++++++++++++++++++-------- 1 file changed, 177 insertions(+), 50 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 0b25554bfb67..066a91fab0b9 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -1,55 +1,182 @@ name: PR:4.x on: - pull_request: - branches: - - 4.x + pull_request: + branches: + - 4.x -jobs: - - Linux: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-Linux.yaml@main - with: - workflow_branch: main - - Windows: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-Windows.yaml@main - with: - workflow_branch: main - - Ubuntu2404-ARM64: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64.yaml@main - - Ubuntu2404-ARM64-Debug: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64-Debug.yaml@main - - Ubuntu2004-x64-OpenVINO: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20-OpenVINO.yaml@main - - Ubuntu2004-x64-CUDA: - if: "${{ contains(github.event.pull_request.labels.*.name, 'category: dnn') }} || ${{ contains(github.event.pull_request.labels.*.name, 'category: dnn (onnx)') }}" - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20-Cuda.yaml@main - - macOS-ARM64: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml@main +concurrency: + group: OCV-PR-Linux-${{ github.ref }} + cancel-in-progress: true - macOS-x64: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml@main - - macOS-ARM64-Vulkan: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-ARM64-Vulkan.yaml@main - - iOS: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-iOS.yaml@main - - Android-SDK: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-4.x-Android-SDK.yaml@main - - TIM-VX: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-timvx-backend-tests-4.x.yml@main - - docs: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-docs.yaml@main - - Linux-RISC-V-Clang: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-RISCV.yaml@main +jobs: + Ubuntu: + runs-on: incredibuild-runner + strategy: + fail-fast: false + max-parallel: 3 + matrix: + version: + - "24.04" + - "22.04" + - "20.04" + include: + - version: "24.04" + image: "24.04:20251127" + jpegxl: true + avif: true + avx2: true + gphoto2: true + aravis: true + - version: "22.04" + image: "22.04:20251015" + avif: true + plugins: true + - version: "20.04" + image: "20.04:20251015" + limited_api: true + defaults: + run: + shell: bash + container: + image: "quay.io/opencv-ci/opencv-ubuntu-${{ matrix.image }}" + env: + ANT_HOME: "/usr/share/ant" + DNN_MODELS: "${{ github.workspace }}/dnn-models" + CCACHE_DIR: "${{ github.workspace }}/.ccache" + CCACHE_MAXSIZE: "8G" + OPENCV_DOWNLOAD_PATH: "${{ github.workspace }}/binaries_cache" + CMAKE_OPT: >- + -DBUILD_DOCS=ON + -DBUILD_EXAMPLES=ON + -DOPENCV_ENABLE_NONFREE=ON + -DWITH_IMGCODEC_GIF=ON + ${{ matrix.jpegxl && '-DWITH_JPEGXL=ON' }} + ${{ matrix.avif && '-DWITH_AVIF=ON' }} + ${{ matrix.gphoto2 && '-DWITH_GPHOTO2=ON' }} + ${{ matrix.aravis && '-DWITH_ARAVIS=ON' }} + ${{ matrix.avx2 && '-DCPU_BASELINE=AVX2'}} + ${{ matrix.plugins && '-DVIDEOIO_PLUGIN_LIST=all -DHIGHGUI_PLUGIN_LIST=all' }} + ${{ matrix.limited_api && '-DPYTHON3_LIMITED_API=ON' }} + HOME: "${{ github.workspace }}" + MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" + OPENCV_FOR_THREADS_NUM: 4 + CMAKE_BUILD_PARALLEL_LEVEL: 4 + + steps: + - name: Checkout workflow repository + uses: actions/checkout@v4 + with: + repository: opencv/ci-gha-workflow + ref: main + + - name: Checkout and merge OpenCV + uses: ./checkout-and-merge + with: + target_branch: "4.x" + author: "${{ github.event.pull_request.user.login }}" + source_branch: "${{ github.head_ref }}" + home: "${{ env.HOME }}" + workdir: "${{ env.HOME }}" + + - name: Create cache directories + run: | + mkdir -p '${{ env.DNN_MODELS }}' + mkdir -p '${{ env.CCACHE_DIR }}' + mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' + + - name: Download DNN models + timeout-minutes: 60 + working-directory: "${{ env.HOME }}" + run: | + python3 opencv_extra/testdata/dnn/download_models.py \ + --dst '${{ env.DNN_MODELS }}/dnn' + echo "OPENCV_DNN_TEST_DATA_PATH=${{ env.DNN_MODELS }}" >> $GITHUB_ENV + + - if: ${{ github.event.repository.name != 'opencv_contrib' }} + name: Configure OpenCV + working-directory: "${{ env.HOME }}" + run: | + echo "::group::Configure" + rm -rf build + mkdir -p build + cmake \ + -S opencv \ + -B build \ + -G Ninja \ + ${{ env.CMAKE_OPT }} + echo "::endgroup::" + + - if: ${{ github.event.repository.name != 'opencv_contrib' }} + name: Build OpenCV + working-directory: "${{ env.HOME }}" + run: | + set -x + echo "::group::Build" + cmake --build build 2>&1 | tee build/log.txt + echo "::endgroup::" + + - if: ${{ github.event.repository.name != 'opencv_contrib' }} + name: Check build warnings + run: | + set +e + python3 ./scripts/warnings-handling.py \ + '${{ env.HOME }}/build/log.txt' + if [ $? -ne 0 ]; then + echo "WARNINGS=1" >> $GITHUB_ENV + fi + + - name: Configure OpenCV with contrib + working-directory: "${{ env.HOME }}" + run: | + echo "::group::Configure" + rm -rf build-contrib + mkdir -p build-contrib + cmake \ + -S opencv \ + -B build-contrib \ + -G Ninja \ + -DOPENCV_EXTRA_MODULES_PATH=opencv_contrib/modules \ + ${{ env.CMAKE_OPT }} + echo "::endgroup::" + + - name: Build OpenCV with contrib + working-directory: "${{ env.HOME }}" + run: | + set -x + echo "::group::Build" + cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + echo "::endgroup::" + + - name: Check build-contrib warnings + run: | + set +e + python3 ./scripts/warnings-handling.py \ + '${{ env.HOME }}/build-contrib/log.txt' + if [ $? -ne 0 ]; then + echo "WARNINGS=1" >> $GITHUB_ENV + fi + + - name: Run OpenCV tests + uses: ./run-tests + env: + OPENCV_TEST_DATA_PATH: "${{ env.HOME }}/opencv_extra/testdata" + OPENCV_TEST_REQUIRE_DATA: 1 + OPENCV_TEST_CHECK_OPTIONAL_DATA: 1 + PYTHONPATH: "${{ env.HOME }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH" + with: + workdir: "${{ env.HOME }}" + builddir: "${{ env.MAIN_BUILD_DIR }}" + logdir: "${{ env.HOME }}/${{ env.MAIN_BUILD_DIR }}" + plan: "test-plan-4.x.json" + suite: "[ ${{ (github.event.repository.name == 'opencv_contrib') && '''linux-contrib''' || '''linux''' }} ]" + filter: "[ 'ubuntu-common', ${{ matrix.avx2 && '''ubuntu-avx2''' }} ]" + enable_python: "true" + enable_java: "true" + suffix: "${{ matrix.version }}_4.x" + + - if: ${{ always() && env.WARNINGS == '1' }} + name: Warnings check + run: | + echo "::error Warnings have been found!" + exit 1 From 455cb4e68da4c4a24691388c47956f8a8ee9fe11 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Tue, 3 Feb 2026 09:04:06 +0200 Subject: [PATCH 02/37] fix: run the build on the incredibuild-runner and not on the container quay.io/opencv-ci/opencv-ubuntu-24.04:20251127 --- .github/workflows/PR-4.x.yaml | 65 +++++++++-------------------------- 1 file changed, 16 insertions(+), 49 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 066a91fab0b9..c5442b853390 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -12,36 +12,10 @@ concurrency: jobs: Ubuntu: runs-on: incredibuild-runner - strategy: - fail-fast: false - max-parallel: 3 - matrix: - version: - - "24.04" - - "22.04" - - "20.04" - include: - - version: "24.04" - image: "24.04:20251127" - jpegxl: true - avif: true - avx2: true - gphoto2: true - aravis: true - - version: "22.04" - image: "22.04:20251015" - avif: true - plugins: true - - version: "20.04" - image: "20.04:20251015" - limited_api: true defaults: run: shell: bash - container: - image: "quay.io/opencv-ci/opencv-ubuntu-${{ matrix.image }}" env: - ANT_HOME: "/usr/share/ant" DNN_MODELS: "${{ github.workspace }}/dnn-models" CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" @@ -51,14 +25,7 @@ jobs: -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_IMGCODEC_GIF=ON - ${{ matrix.jpegxl && '-DWITH_JPEGXL=ON' }} - ${{ matrix.avif && '-DWITH_AVIF=ON' }} - ${{ matrix.gphoto2 && '-DWITH_GPHOTO2=ON' }} - ${{ matrix.aravis && '-DWITH_ARAVIS=ON' }} - ${{ matrix.avx2 && '-DCPU_BASELINE=AVX2'}} - ${{ matrix.plugins && '-DVIDEOIO_PLUGIN_LIST=all -DHIGHGUI_PLUGIN_LIST=all' }} - ${{ matrix.limited_api && '-DPYTHON3_LIMITED_API=ON' }} - HOME: "${{ github.workspace }}" + WORKDIR: "${{ github.workspace }}" MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" OPENCV_FOR_THREADS_NUM: 4 CMAKE_BUILD_PARALLEL_LEVEL: 4 @@ -76,8 +43,8 @@ jobs: target_branch: "4.x" author: "${{ github.event.pull_request.user.login }}" source_branch: "${{ github.head_ref }}" - home: "${{ env.HOME }}" - workdir: "${{ env.HOME }}" + home: "${{ env.WORKDIR }}" + workdir: "${{ env.WORKDIR }}" - name: Create cache directories run: | @@ -87,7 +54,7 @@ jobs: - name: Download DNN models timeout-minutes: 60 - working-directory: "${{ env.HOME }}" + working-directory: "${{ env.WORKDIR }}" run: | python3 opencv_extra/testdata/dnn/download_models.py \ --dst '${{ env.DNN_MODELS }}/dnn' @@ -95,7 +62,7 @@ jobs: - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV - working-directory: "${{ env.HOME }}" + working-directory: "${{ env.WORKDIR }}" run: | echo "::group::Configure" rm -rf build @@ -109,7 +76,7 @@ jobs: - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Build OpenCV - working-directory: "${{ env.HOME }}" + working-directory: "${{ env.WORKDIR }}" run: | set -x echo "::group::Build" @@ -121,13 +88,13 @@ jobs: run: | set +e python3 ./scripts/warnings-handling.py \ - '${{ env.HOME }}/build/log.txt' + '${{ env.WORKDIR }}/build/log.txt' if [ $? -ne 0 ]; then echo "WARNINGS=1" >> $GITHUB_ENV fi - name: Configure OpenCV with contrib - working-directory: "${{ env.HOME }}" + working-directory: "${{ env.WORKDIR }}" run: | echo "::group::Configure" rm -rf build-contrib @@ -141,7 +108,7 @@ jobs: echo "::endgroup::" - name: Build OpenCV with contrib - working-directory: "${{ env.HOME }}" + working-directory: "${{ env.WORKDIR }}" run: | set -x echo "::group::Build" @@ -152,7 +119,7 @@ jobs: run: | set +e python3 ./scripts/warnings-handling.py \ - '${{ env.HOME }}/build-contrib/log.txt' + '${{ env.WORKDIR }}/build-contrib/log.txt' if [ $? -ne 0 ]; then echo "WARNINGS=1" >> $GITHUB_ENV fi @@ -160,20 +127,20 @@ jobs: - name: Run OpenCV tests uses: ./run-tests env: - OPENCV_TEST_DATA_PATH: "${{ env.HOME }}/opencv_extra/testdata" + OPENCV_TEST_DATA_PATH: "${{ env.WORKDIR }}/opencv_extra/testdata" OPENCV_TEST_REQUIRE_DATA: 1 OPENCV_TEST_CHECK_OPTIONAL_DATA: 1 - PYTHONPATH: "${{ env.HOME }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH" + PYTHONPATH: "${{ env.WORKDIR }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH" with: - workdir: "${{ env.HOME }}" + workdir: "${{ env.WORKDIR }}" builddir: "${{ env.MAIN_BUILD_DIR }}" - logdir: "${{ env.HOME }}/${{ env.MAIN_BUILD_DIR }}" + logdir: "${{ env.WORKDIR }}/${{ env.MAIN_BUILD_DIR }}" plan: "test-plan-4.x.json" suite: "[ ${{ (github.event.repository.name == 'opencv_contrib') && '''linux-contrib''' || '''linux''' }} ]" - filter: "[ 'ubuntu-common', ${{ matrix.avx2 && '''ubuntu-avx2''' }} ]" + filter: "[ 'ubuntu-common' ]" enable_python: "true" enable_java: "true" - suffix: "${{ matrix.version }}_4.x" + suffix: "incredibuild_4.x" - if: ${{ always() && env.WARNINGS == '1' }} name: Warnings check From 03174ef5b2554f0bae62bc8963986b138df3c5af Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Tue, 3 Feb 2026 09:07:44 +0200 Subject: [PATCH 03/37] fix: install requests --- .github/workflows/PR-4.x.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index c5442b853390..5806e4c1ac62 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -52,6 +52,10 @@ jobs: mkdir -p '${{ env.CCACHE_DIR }}' mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' + - name: Install Python dependencies + run: | + apt-get update && apt-get install -y python3-requests + - name: Download DNN models timeout-minutes: 60 working-directory: "${{ env.WORKDIR }}" From 0ede001360f842fcd4c24a6dea404899e56cc75c Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Tue, 3 Feb 2026 09:30:04 +0200 Subject: [PATCH 04/37] fix: remove download dnn step --- .github/workflows/PR-4.x.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 5806e4c1ac62..8815e1b98f6d 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -16,7 +16,6 @@ jobs: run: shell: bash env: - DNN_MODELS: "${{ github.workspace }}/dnn-models" CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" OPENCV_DOWNLOAD_PATH: "${{ github.workspace }}/binaries_cache" @@ -48,22 +47,9 @@ jobs: - name: Create cache directories run: | - mkdir -p '${{ env.DNN_MODELS }}' mkdir -p '${{ env.CCACHE_DIR }}' mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' - - name: Install Python dependencies - run: | - apt-get update && apt-get install -y python3-requests - - - name: Download DNN models - timeout-minutes: 60 - working-directory: "${{ env.WORKDIR }}" - run: | - python3 opencv_extra/testdata/dnn/download_models.py \ - --dst '${{ env.DNN_MODELS }}/dnn' - echo "OPENCV_DNN_TEST_DATA_PATH=${{ env.DNN_MODELS }}" >> $GITHUB_ENV - - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV working-directory: "${{ env.WORKDIR }}" From db9241eede400a0e950c14af9b13a3c7a9b0a461 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Tue, 3 Feb 2026 12:38:53 +0200 Subject: [PATCH 05/37] fix: add step to install cmake --- .github/workflows/PR-4.x.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 8815e1b98f6d..2b147eedcb22 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -50,6 +50,11 @@ jobs: mkdir -p '${{ env.CCACHE_DIR }}' mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' + - name: Install build tools + run: | + apt-get update + apt-get install -y cmake ninja-build + - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV working-directory: "${{ env.WORKDIR }}" From 1532895f885a83e16c0dde8baed2c644df6dae8d Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Wed, 4 Feb 2026 13:44:35 +0200 Subject: [PATCH 06/37] fix: add ib_console to cmake --- .github/workflows/PR-4.x.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 2b147eedcb22..e1eab5b8055b 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -75,7 +75,7 @@ jobs: run: | set -x echo "::group::Build" - cmake --build build 2>&1 | tee build/log.txt + /usr/bin/ib_console --standalone cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" - if: ${{ github.event.repository.name != 'opencv_contrib' }} @@ -107,7 +107,7 @@ jobs: run: | set -x echo "::group::Build" - cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + /usr/bin/ib_console --standalone cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" - name: Check build-contrib warnings From 7389453820934f34a6a7f8e27f67c075edde7a08 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Wed, 4 Feb 2026 15:27:28 +0200 Subject: [PATCH 07/37] fix: remove test step --- .github/workflows/PR-4.x.yaml | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index e1eab5b8055b..072a3209899d 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -75,7 +75,7 @@ jobs: run: | set -x echo "::group::Build" - /usr/bin/ib_console --standalone cmake --build build 2>&1 | tee build/log.txt + cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" - if: ${{ github.event.repository.name != 'opencv_contrib' }} @@ -107,7 +107,7 @@ jobs: run: | set -x echo "::group::Build" - /usr/bin/ib_console --standalone cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" - name: Check build-contrib warnings @@ -119,24 +119,6 @@ jobs: echo "WARNINGS=1" >> $GITHUB_ENV fi - - name: Run OpenCV tests - uses: ./run-tests - env: - OPENCV_TEST_DATA_PATH: "${{ env.WORKDIR }}/opencv_extra/testdata" - OPENCV_TEST_REQUIRE_DATA: 1 - OPENCV_TEST_CHECK_OPTIONAL_DATA: 1 - PYTHONPATH: "${{ env.WORKDIR }}/${{ env.MAIN_BUILD_DIR }}/python_loader:$PYTHONPATH" - with: - workdir: "${{ env.WORKDIR }}" - builddir: "${{ env.MAIN_BUILD_DIR }}" - logdir: "${{ env.WORKDIR }}/${{ env.MAIN_BUILD_DIR }}" - plan: "test-plan-4.x.json" - suite: "[ ${{ (github.event.repository.name == 'opencv_contrib') && '''linux-contrib''' || '''linux''' }} ]" - filter: "[ 'ubuntu-common' ]" - enable_python: "true" - enable_java: "true" - suffix: "incredibuild_4.x" - - if: ${{ always() && env.WARNINGS == '1' }} name: Warnings check run: | From aefca47ff72f8a14a0b0235d2f33ca8f93874b07 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Wed, 4 Feb 2026 16:13:25 +0200 Subject: [PATCH 08/37] fix: restore ib_console --- .github/workflows/PR-4.x.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 072a3209899d..28ead022192d 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -75,7 +75,7 @@ jobs: run: | set -x echo "::group::Build" - cmake --build build 2>&1 | tee build/log.txt + /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" - if: ${{ github.event.repository.name != 'opencv_contrib' }} @@ -107,7 +107,7 @@ jobs: run: | set -x echo "::group::Build" - cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" - name: Check build-contrib warnings From e9313aa9025caa2dd46f61668cc656805247555a Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Wed, 4 Feb 2026 17:33:11 +0200 Subject: [PATCH 09/37] fix: cmake is installed as part of the runner --- .github/workflows/PR-4.x.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 28ead022192d..3ef0da72f6ee 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -50,11 +50,6 @@ jobs: mkdir -p '${{ env.CCACHE_DIR }}' mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' - - name: Install build tools - run: | - apt-get update - apt-get install -y cmake ninja-build - - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV working-directory: "${{ env.WORKDIR }}" From 38fb9747cea2c611fa0513498960fc0449c2bd50 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 08:30:30 +0200 Subject: [PATCH 10/37] fix: use container with mount from the incredibuild-runner --- .github/workflows/PR-4.x.yaml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 3ef0da72f6ee..62c9335d2f1a 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -15,6 +15,13 @@ jobs: defaults: run: shell: bash + container: + image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" + options: --user root + volumes: + - /ib-workspace/incredibuild:/ib-workspace/incredibuild + - /ib-workspace/cache:/ib-workspace/cache + - /opt/incredibuild:/opt/incredibuild env: CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" @@ -30,6 +37,16 @@ jobs: CMAKE_BUILD_PARALLEL_LEVEL: 4 steps: + - name: Start Incredibuild + shell: bash + run: | + # Verify the mounts and symlinks are intact + ls -la /ib-workspace/incredibuild/cache + ls -la /ib-workspace/incredibuild/db + + # Start the daemon + /opt/incredibuild/etc/init.d/incredibuild start + - name: Checkout workflow repository uses: actions/checkout@v4 with: From 53c36677f773bb6b24defce4da819adef3c8a251 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 08:51:35 +0200 Subject: [PATCH 11/37] fix: make sure we have the opt/incredibuild files --- .github/workflows/PR-4.x.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 62c9335d2f1a..8da7e90dd580 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -43,6 +43,7 @@ jobs: # Verify the mounts and symlinks are intact ls -la /ib-workspace/incredibuild/cache ls -la /ib-workspace/incredibuild/db + ls -la /opt/incredibuild/etc/init.d/incredibuild # Start the daemon /opt/incredibuild/etc/init.d/incredibuild start From 2d541d73d55326a9627cf5e039c6e4d604ddbde8 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 08:57:28 +0200 Subject: [PATCH 12/37] fix: add verify folders --- .github/workflows/PR-4.x.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 8da7e90dd580..24a7f51f7271 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -43,7 +43,8 @@ jobs: # Verify the mounts and symlinks are intact ls -la /ib-workspace/incredibuild/cache ls -la /ib-workspace/incredibuild/db - ls -la /opt/incredibuild/etc/init.d/incredibuild + ls -laR /ib-workspace/incredibuild/ + ls -laR /opt/incredibuild/ # Start the daemon /opt/incredibuild/etc/init.d/incredibuild start From aa27672591cf1b56c6c920ce0b888e91f61c71a9 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 10:00:05 +0200 Subject: [PATCH 13/37] fix: mount on /ib-workspace --- .github/workflows/PR-4.x.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 24a7f51f7271..564cb45e184b 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -19,8 +19,7 @@ jobs: image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" options: --user root volumes: - - /ib-workspace/incredibuild:/ib-workspace/incredibuild - - /ib-workspace/cache:/ib-workspace/cache + - /ib-workspace:/ib-workspace - /opt/incredibuild:/opt/incredibuild env: CCACHE_DIR: "${{ github.workspace }}/.ccache" From 2ebab9d3d49e486ad5b20aa5a1aabd3244eb547b Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 10:09:48 +0200 Subject: [PATCH 14/37] fix: install incredibuild --- .github/workflows/PR-4.x.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 564cb45e184b..f71ca85a94b8 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -46,7 +46,7 @@ jobs: ls -laR /opt/incredibuild/ # Start the daemon - /opt/incredibuild/etc/init.d/incredibuild start + /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D - name: Checkout workflow repository uses: actions/checkout@v4 From f2800286cf3621c4da00e8dbcc14a8e56d743af7 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 10:12:41 +0200 Subject: [PATCH 15/37] fix: install incredibuild --- .github/workflows/PR-4.x.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index f71ca85a94b8..c9b85a428595 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -20,7 +20,6 @@ jobs: options: --user root volumes: - /ib-workspace:/ib-workspace - - /opt/incredibuild:/opt/incredibuild env: CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" @@ -40,10 +39,7 @@ jobs: shell: bash run: | # Verify the mounts and symlinks are intact - ls -la /ib-workspace/incredibuild/cache - ls -la /ib-workspace/incredibuild/db - ls -laR /ib-workspace/incredibuild/ - ls -laR /opt/incredibuild/ + ls -la /ib-workspace/incredibuild/ # Start the daemon /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D From ce14b4fe3cb035dc03ec37281259f16a8e2920eb Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 11:21:58 +0200 Subject: [PATCH 16/37] fix: map folders in the incredibuild --- .github/workflows/PR-4.x.yaml | 41 ++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index c9b85a428595..3d8e5d8bf81a 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -38,12 +38,47 @@ jobs: - name: Start Incredibuild shell: bash run: | - # Verify the mounts and symlinks are intact + # Install Incredibuild ls -la /ib-workspace/incredibuild/ - - # Start the daemon /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + # Configure folder mapping (after install so /incredibuild is populated) + IB_INSTALL_DIR="/incredibuild" + VOLUME_DIR="/ib-workspace/cache" + SUBFOLDERS=("db" "cache" "log") + + echo "Configuring Incredibuild folder mappings..." + echo "Existing folders in $VOLUME_DIR:" + ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" + + for folder in "${SUBFOLDERS[@]}"; do + TARGET_LINK="$IB_INSTALL_DIR/$folder" + VOL_DEST="$VOLUME_DIR/$folder" + + # 1. Ensure the destination directory exists on the volume + if [ ! -d "$VOL_DEST" ]; then + echo "Creating directory on volume: $VOL_DEST" + mkdir -p "$VOL_DEST" + + # If the installation created default files, move them to the volume + if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + echo "Moving initial data from $TARGET_LINK to $VOL_DEST" + cp -a "$TARGET_LINK/." "$VOL_DEST/" + fi + fi + + # 2. Create the Symlink + if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + echo "Removing local directory $TARGET_LINK to replace with symlink..." + rm -rf "$TARGET_LINK" + fi + + if [ ! -L "$TARGET_LINK" ]; then + echo "Linking $TARGET_LINK -> $VOL_DEST" + ln -s "$VOL_DEST" "$TARGET_LINK" + fi + done + - name: Checkout workflow repository uses: actions/checkout@v4 with: From 720990f8c852053b7cc34144a077fc94056a9b66 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 12:58:32 +0200 Subject: [PATCH 17/37] fix: stop and star incredibuild --- .github/workflows/PR-4.x.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 3d8e5d8bf81a..c135b697390e 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -42,6 +42,9 @@ jobs: ls -la /ib-workspace/incredibuild/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + # Stop Incredibuild before remapping folders + /opt/incredibuild/etc/init.d/incredibuild stop + # Configure folder mapping (after install so /incredibuild is populated) IB_INSTALL_DIR="/incredibuild" VOLUME_DIR="/ib-workspace/cache" @@ -79,6 +82,9 @@ jobs: fi done + # Start Incredibuild with remapped folders + /opt/incredibuild/etc/init.d/incredibuild start + - name: Checkout workflow repository uses: actions/checkout@v4 with: From c9051b317249dfa1d8c9d16dd01f17457958a7c3 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:06:55 +0200 Subject: [PATCH 18/37] fix: ls incredibuild folder --- .github/workflows/PR-4.x.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index c135b697390e..8d892c6a453b 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -84,6 +84,7 @@ jobs: # Start Incredibuild with remapped folders /opt/incredibuild/etc/init.d/incredibuild start + ls -la /incredibuild/ - name: Checkout workflow repository uses: actions/checkout@v4 From ad2bf1e32aace7af8221485800621d5cb8d647cd Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:20:46 +0200 Subject: [PATCH 19/37] making sure the persist volume is available --- .github/workflows/PR-4.x.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 8d892c6a453b..d79b0030e6b7 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -40,6 +40,7 @@ jobs: run: | # Install Incredibuild ls -la /ib-workspace/incredibuild/ + ls -la /ib-workspace/cache /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D # Stop Incredibuild before remapping folders From 837edb98fafb566ed1a05187caa383f1a3c80791 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:27:01 +0200 Subject: [PATCH 20/37] fix: use /ib-workspace/incredibuild --- .github/workflows/PR-4.x.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index d79b0030e6b7..83aad5fdd7ad 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -40,7 +40,7 @@ jobs: run: | # Install Incredibuild ls -la /ib-workspace/incredibuild/ - ls -la /ib-workspace/cache + ls -la /ib-workspace/incredibuild/db/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D # Stop Incredibuild before remapping folders @@ -48,7 +48,7 @@ jobs: # Configure folder mapping (after install so /incredibuild is populated) IB_INSTALL_DIR="/incredibuild" - VOLUME_DIR="/ib-workspace/cache" + VOLUME_DIR="/ib-workspace/incredibuild" SUBFOLDERS=("db" "cache" "log") echo "Configuring Incredibuild folder mappings..." From d4bd1b339dc5ee6a3bc8ecccc254f9d63b174245 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:33:31 +0200 Subject: [PATCH 21/37] fix: map also the cache volume --- .github/workflows/PR-4.x.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 83aad5fdd7ad..3bdc6ca4837a 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -19,7 +19,8 @@ jobs: image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" options: --user root volumes: - - /ib-workspace:/ib-workspace + - /ib-workspace/incredibuild:/ib-workspace/incredibuild + - /ib-workspace/cache:/ib-workspace/cache env: CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" @@ -40,7 +41,7 @@ jobs: run: | # Install Incredibuild ls -la /ib-workspace/incredibuild/ - ls -la /ib-workspace/incredibuild/db/ + ls -la /ib-workspace/cache/db/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D # Stop Incredibuild before remapping folders @@ -48,7 +49,7 @@ jobs: # Configure folder mapping (after install so /incredibuild is populated) IB_INSTALL_DIR="/incredibuild" - VOLUME_DIR="/ib-workspace/incredibuild" + VOLUME_DIR="/ib-workspace/cache" SUBFOLDERS=("db" "cache" "log") echo "Configuring Incredibuild folder mappings..." From 64a04c08416a00280d955fdfba57169259542f7b Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:38:54 +0200 Subject: [PATCH 22/37] fix: use restart --- .github/workflows/PR-4.x.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 3bdc6ca4837a..ac9415013140 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -85,7 +85,7 @@ jobs: done # Start Incredibuild with remapped folders - /opt/incredibuild/etc/init.d/incredibuild start + /opt/incredibuild/etc/init.d/incredibuild restart ls -la /incredibuild/ - name: Checkout workflow repository From f0f735c718190d7aa64c11e1136ecfc28d831a86 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:55:57 +0200 Subject: [PATCH 23/37] fix: add ps after install --- .github/workflows/PR-4.x.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index ac9415013140..bd2f8a72681f 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -43,6 +43,7 @@ jobs: ls -la /ib-workspace/incredibuild/ ls -la /ib-workspace/cache/db/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + ps aux # Stop Incredibuild before remapping folders /opt/incredibuild/etc/init.d/incredibuild stop From 3a345d584242e42fc9f90c97b794964b3f6d46cc Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 13:59:30 +0200 Subject: [PATCH 24/37] fix: add ps after stop --- .github/workflows/PR-4.x.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index bd2f8a72681f..cae766fc423c 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -43,10 +43,14 @@ jobs: ls -la /ib-workspace/incredibuild/ ls -la /ib-workspace/cache/db/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + echo "ps after installation" ps aux # Stop Incredibuild before remapping folders /opt/incredibuild/etc/init.d/incredibuild stop + echo "ps after stop" + ps aux + # Configure folder mapping (after install so /incredibuild is populated) IB_INSTALL_DIR="/incredibuild" From 4e2895bcdfc0f5aa22419908196df55b230407f8 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 14:05:18 +0200 Subject: [PATCH 25/37] fix: add init option --- .github/workflows/PR-4.x.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index cae766fc423c..693da1785cc8 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -17,7 +17,7 @@ jobs: shell: bash container: image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" - options: --user root + options: --user root --init volumes: - /ib-workspace/incredibuild:/ib-workspace/incredibuild - /ib-workspace/cache:/ib-workspace/cache From 3c9f7eaaea8b25f57d4fa8315734b017a80e4c8d Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 16:52:34 +0200 Subject: [PATCH 26/37] fix: run on runner --- .github/workflows/PR-4.x.yaml | 123 +++++++++++++++++----------------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 693da1785cc8..b641496f4105 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -15,12 +15,12 @@ jobs: defaults: run: shell: bash - container: - image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" - options: --user root --init - volumes: - - /ib-workspace/incredibuild:/ib-workspace/incredibuild - - /ib-workspace/cache:/ib-workspace/cache + # container: + # image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" + # options: --user root --init + # volumes: + # - /ib-workspace/incredibuild:/ib-workspace/incredibuild + # - /ib-workspace/cache:/ib-workspace/cache env: CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" @@ -36,62 +36,61 @@ jobs: CMAKE_BUILD_PARALLEL_LEVEL: 4 steps: - - name: Start Incredibuild - shell: bash - run: | - # Install Incredibuild - ls -la /ib-workspace/incredibuild/ - ls -la /ib-workspace/cache/db/ - /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D - echo "ps after installation" - ps aux - - # Stop Incredibuild before remapping folders - /opt/incredibuild/etc/init.d/incredibuild stop - echo "ps after stop" - ps aux - - - # Configure folder mapping (after install so /incredibuild is populated) - IB_INSTALL_DIR="/incredibuild" - VOLUME_DIR="/ib-workspace/cache" - SUBFOLDERS=("db" "cache" "log") - - echo "Configuring Incredibuild folder mappings..." - echo "Existing folders in $VOLUME_DIR:" - ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" - - for folder in "${SUBFOLDERS[@]}"; do - TARGET_LINK="$IB_INSTALL_DIR/$folder" - VOL_DEST="$VOLUME_DIR/$folder" - - # 1. Ensure the destination directory exists on the volume - if [ ! -d "$VOL_DEST" ]; then - echo "Creating directory on volume: $VOL_DEST" - mkdir -p "$VOL_DEST" - - # If the installation created default files, move them to the volume - if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - echo "Moving initial data from $TARGET_LINK to $VOL_DEST" - cp -a "$TARGET_LINK/." "$VOL_DEST/" - fi - fi - - # 2. Create the Symlink - if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - echo "Removing local directory $TARGET_LINK to replace with symlink..." - rm -rf "$TARGET_LINK" - fi - - if [ ! -L "$TARGET_LINK" ]; then - echo "Linking $TARGET_LINK -> $VOL_DEST" - ln -s "$VOL_DEST" "$TARGET_LINK" - fi - done - - # Start Incredibuild with remapped folders - /opt/incredibuild/etc/init.d/incredibuild restart - ls -la /incredibuild/ + # - name: Start Incredibuild + # shell: bash + # run: | + # # Install Incredibuild + # ls -la /ib-workspace/incredibuild/ + # ls -la /ib-workspace/cache/db/ + # /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + # echo "ps after installation" + # ps aux + + # # Stop Incredibuild before remapping folders + # /opt/incredibuild/etc/init.d/incredibuild stop + # echo "ps after stop" + # ps aux + + # # Configure folder mapping (after install so /incredibuild is populated) + # IB_INSTALL_DIR="/incredibuild" + # VOLUME_DIR="/ib-workspace/cache" + # SUBFOLDERS=("db" "cache" "log") + + # echo "Configuring Incredibuild folder mappings..." + # echo "Existing folders in $VOLUME_DIR:" + # ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" + + # for folder in "${SUBFOLDERS[@]}"; do + # TARGET_LINK="$IB_INSTALL_DIR/$folder" + # VOL_DEST="$VOLUME_DIR/$folder" + + # # 1. Ensure the destination directory exists on the volume + # if [ ! -d "$VOL_DEST" ]; then + # echo "Creating directory on volume: $VOL_DEST" + # mkdir -p "$VOL_DEST" + + # # If the installation created default files, move them to the volume + # if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + # echo "Moving initial data from $TARGET_LINK to $VOL_DEST" + # cp -a "$TARGET_LINK/." "$VOL_DEST/" + # fi + # fi + + # # 2. Create the Symlink + # if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + # echo "Removing local directory $TARGET_LINK to replace with symlink..." + # rm -rf "$TARGET_LINK" + # fi + + # if [ ! -L "$TARGET_LINK" ]; then + # echo "Linking $TARGET_LINK -> $VOL_DEST" + # ln -s "$VOL_DEST" "$TARGET_LINK" + # fi + # done + + # # Start Incredibuild with remapped folders + # /opt/incredibuild/etc/init.d/incredibuild restart + # ls -la /incredibuild/ - name: Checkout workflow repository uses: actions/checkout@v4 From f4886f3a37ed7dc05578b0a25fd5ecdbad963a1d Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Feb 2026 17:34:06 +0200 Subject: [PATCH 27/37] fix: workspace folder --- .github/workflows/PR-4.x.yaml | 146 +++++++++++++++++----------------- 1 file changed, 72 insertions(+), 74 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index b641496f4105..23a5c6a7f704 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -15,82 +15,80 @@ jobs: defaults: run: shell: bash - # container: - # image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" - # options: --user root --init - # volumes: - # - /ib-workspace/incredibuild:/ib-workspace/incredibuild - # - /ib-workspace/cache:/ib-workspace/cache + container: + image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" + options: --user root --init + volumes: + - /ib-workspace/incredibuild:/ib-workspace/incredibuild + - /ib-workspace/cache:/ib-workspace/cache env: - CCACHE_DIR: "${{ github.workspace }}/.ccache" CCACHE_MAXSIZE: "8G" - OPENCV_DOWNLOAD_PATH: "${{ github.workspace }}/binaries_cache" CMAKE_OPT: >- -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DWITH_IMGCODEC_GIF=ON - WORKDIR: "${{ github.workspace }}" MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" OPENCV_FOR_THREADS_NUM: 4 CMAKE_BUILD_PARALLEL_LEVEL: 4 steps: - # - name: Start Incredibuild - # shell: bash - # run: | - # # Install Incredibuild - # ls -la /ib-workspace/incredibuild/ - # ls -la /ib-workspace/cache/db/ - # /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D - # echo "ps after installation" - # ps aux - - # # Stop Incredibuild before remapping folders - # /opt/incredibuild/etc/init.d/incredibuild stop - # echo "ps after stop" - # ps aux - - # # Configure folder mapping (after install so /incredibuild is populated) - # IB_INSTALL_DIR="/incredibuild" - # VOLUME_DIR="/ib-workspace/cache" - # SUBFOLDERS=("db" "cache" "log") - - # echo "Configuring Incredibuild folder mappings..." - # echo "Existing folders in $VOLUME_DIR:" - # ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" - - # for folder in "${SUBFOLDERS[@]}"; do - # TARGET_LINK="$IB_INSTALL_DIR/$folder" - # VOL_DEST="$VOLUME_DIR/$folder" - - # # 1. Ensure the destination directory exists on the volume - # if [ ! -d "$VOL_DEST" ]; then - # echo "Creating directory on volume: $VOL_DEST" - # mkdir -p "$VOL_DEST" - - # # If the installation created default files, move them to the volume - # if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - # echo "Moving initial data from $TARGET_LINK to $VOL_DEST" - # cp -a "$TARGET_LINK/." "$VOL_DEST/" - # fi - # fi - - # # 2. Create the Symlink - # if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - # echo "Removing local directory $TARGET_LINK to replace with symlink..." - # rm -rf "$TARGET_LINK" - # fi - - # if [ ! -L "$TARGET_LINK" ]; then - # echo "Linking $TARGET_LINK -> $VOL_DEST" - # ln -s "$VOL_DEST" "$TARGET_LINK" - # fi - # done - - # # Start Incredibuild with remapped folders - # /opt/incredibuild/etc/init.d/incredibuild restart - # ls -la /incredibuild/ + - name: Start Incredibuild + shell: bash + run: | + # Install Incredibuild + ls -la /ib-workspace/incredibuild/ + ls -la /ib-workspace/cache/db/ + /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D + echo "ps after installation" + ps aux + + # Stop Incredibuild before remapping folders + /opt/incredibuild/etc/init.d/incredibuild stop + echo "ps after stop" + ps aux + + + # Configure folder mapping (after install so /incredibuild is populated) + IB_INSTALL_DIR="/incredibuild" + VOLUME_DIR="/ib-workspace/cache" + SUBFOLDERS=("db" "cache" "log") + + echo "Configuring Incredibuild folder mappings..." + echo "Existing folders in $VOLUME_DIR:" + ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" + + for folder in "${SUBFOLDERS[@]}"; do + TARGET_LINK="$IB_INSTALL_DIR/$folder" + VOL_DEST="$VOLUME_DIR/$folder" + + # 1. Ensure the destination directory exists on the volume + if [ ! -d "$VOL_DEST" ]; then + echo "Creating directory on volume: $VOL_DEST" + mkdir -p "$VOL_DEST" + + # If the installation created default files, move them to the volume + if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + echo "Moving initial data from $TARGET_LINK to $VOL_DEST" + cp -a "$TARGET_LINK/." "$VOL_DEST/" + fi + fi + + # 2. Create the Symlink + if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then + echo "Removing local directory $TARGET_LINK to replace with symlink..." + rm -rf "$TARGET_LINK" + fi + + if [ ! -L "$TARGET_LINK" ]; then + echo "Linking $TARGET_LINK -> $VOL_DEST" + ln -s "$VOL_DEST" "$TARGET_LINK" + fi + done + + # Start Incredibuild with remapped folders + /opt/incredibuild/etc/init.d/incredibuild restart + ls -la /incredibuild/ - name: Checkout workflow repository uses: actions/checkout@v4 @@ -104,19 +102,19 @@ jobs: target_branch: "4.x" author: "${{ github.event.pull_request.user.login }}" source_branch: "${{ github.head_ref }}" - home: "${{ env.WORKDIR }}" - workdir: "${{ env.WORKDIR }}" + home: "${{ github.workspace }}" + workdir: "${{ github.workspace }}" - name: Create cache directories run: | - mkdir -p '${{ env.CCACHE_DIR }}' - mkdir -p '${{ env.OPENCV_DOWNLOAD_PATH }}' + mkdir -p "$GITHUB_WORKSPACE/.ccache" + mkdir -p "$GITHUB_WORKSPACE/binaries_cache" - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV - working-directory: "${{ env.WORKDIR }}" run: | echo "::group::Configure" + cd "$GITHUB_WORKSPACE" rm -rf build mkdir -p build cmake \ @@ -128,10 +126,10 @@ jobs: - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Build OpenCV - working-directory: "${{ env.WORKDIR }}" run: | set -x echo "::group::Build" + cd "$GITHUB_WORKSPACE" /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" @@ -140,15 +138,15 @@ jobs: run: | set +e python3 ./scripts/warnings-handling.py \ - '${{ env.WORKDIR }}/build/log.txt' + "$GITHUB_WORKSPACE/build/log.txt" if [ $? -ne 0 ]; then echo "WARNINGS=1" >> $GITHUB_ENV fi - name: Configure OpenCV with contrib - working-directory: "${{ env.WORKDIR }}" run: | echo "::group::Configure" + cd "$GITHUB_WORKSPACE" rm -rf build-contrib mkdir -p build-contrib cmake \ @@ -160,10 +158,10 @@ jobs: echo "::endgroup::" - name: Build OpenCV with contrib - working-directory: "${{ env.WORKDIR }}" run: | set -x echo "::group::Build" + cd "$GITHUB_WORKSPACE" /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" @@ -171,7 +169,7 @@ jobs: run: | set +e python3 ./scripts/warnings-handling.py \ - '${{ env.WORKDIR }}/build-contrib/log.txt' + "$GITHUB_WORKSPACE/build-contrib/log.txt" if [ $? -ne 0 ]; then echo "WARNINGS=1" >> $GITHUB_ENV fi From d52e9a898a4963a646ed3f11dc5f15dfc345c84d Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Sun, 15 Feb 2026 08:13:45 +0200 Subject: [PATCH 28/37] fix: ls the cache folder --- .github/workflows/PR-4.x.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 23a5c6a7f704..ad7d9ec3524f 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -39,6 +39,7 @@ jobs: # Install Incredibuild ls -la /ib-workspace/incredibuild/ ls -la /ib-workspace/cache/db/ + ls -la /ib-workspace/cache/cache/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D echo "ps after installation" ps aux @@ -89,6 +90,7 @@ jobs: # Start Incredibuild with remapped folders /opt/incredibuild/etc/init.d/incredibuild restart ls -la /incredibuild/ + ls -la /incredibuild/cache/ - name: Checkout workflow repository uses: actions/checkout@v4 From 9fcd892ac4922ca1a6df11f650f013aa53075fb3 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Sun, 15 Feb 2026 12:07:35 +0200 Subject: [PATCH 29/37] fix: add debug cache --- .github/workflows/PR-4.x.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index ad7d9ec3524f..17331ead7853 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -132,7 +132,7 @@ jobs: set -x echo "::group::Build" cd "$GITHUB_WORKSPACE" - /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build 2>&1 | tee build/log.txt + /usr/bin/ib_console --standalone --build-cache-local-shared --debug=build_cache --build-cache-basedir=$PWD cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" - if: ${{ github.event.repository.name != 'opencv_contrib' }} @@ -164,7 +164,7 @@ jobs: set -x echo "::group::Build" cd "$GITHUB_WORKSPACE" - /usr/bin/ib_console --standalone --build-cache-local-shared --build-cache-basedir=$PWD cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + /usr/bin/ib_console --standalone --build-cache-local-shared --debug=build_cache --build-cache-basedir=$PWD cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" - name: Check build-contrib warnings From f7c339ec8fcf534f9cc2c1fd62b4961f427b6cb6 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Sun, 15 Feb 2026 12:10:06 +0200 Subject: [PATCH 30/37] fix: add du of the cache folder --- .github/workflows/PR-4.x.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 17331ead7853..6817153525d0 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -40,6 +40,7 @@ jobs: ls -la /ib-workspace/incredibuild/ ls -la /ib-workspace/cache/db/ ls -la /ib-workspace/cache/cache/ + du -h /ib-workspace/cache/ /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D echo "ps after installation" ps aux @@ -91,6 +92,7 @@ jobs: /opt/incredibuild/etc/init.d/incredibuild restart ls -la /incredibuild/ ls -la /incredibuild/cache/ + du -h /ib-workspace/cache/ - name: Checkout workflow repository uses: actions/checkout@v4 From f1b13e5fa3fe1d15447e41e52df4cb7105c540eb Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Sun, 15 Feb 2026 15:32:17 +0200 Subject: [PATCH 31/37] fix: disable ccache --- .github/workflows/PR-4.x.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 6817153525d0..f8087c2cf7d7 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -22,7 +22,8 @@ jobs: - /ib-workspace/incredibuild:/ib-workspace/incredibuild - /ib-workspace/cache:/ib-workspace/cache env: - CCACHE_MAXSIZE: "8G" + CCACHE_DISABLE: "1" + # CCACHE_MAXSIZE: "8G" CMAKE_OPT: >- -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON @@ -109,10 +110,10 @@ jobs: home: "${{ github.workspace }}" workdir: "${{ github.workspace }}" - - name: Create cache directories - run: | - mkdir -p "$GITHUB_WORKSPACE/.ccache" - mkdir -p "$GITHUB_WORKSPACE/binaries_cache" + # - name: Create cache directories + # run: | + # mkdir -p "$GITHUB_WORKSPACE/.ccache" + # mkdir -p "$GITHUB_WORKSPACE/binaries_cache" - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV From 0b203c3b47489b462b03a307f044042b5ac175ed Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Sun, 15 Feb 2026 17:15:43 +0200 Subject: [PATCH 32/37] fix: remove ccache --- .github/workflows/PR-4.x.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index f8087c2cf7d7..55fca60cc35d 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -94,6 +94,7 @@ jobs: ls -la /incredibuild/ ls -la /incredibuild/cache/ du -h /ib-workspace/cache/ + rm -f /usr/bin/ccache - name: Checkout workflow repository uses: actions/checkout@v4 From 338b0e9b042a5154c1d76dfef32cfb08e94ec298 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Mon, 16 Feb 2026 14:17:13 +0200 Subject: [PATCH 33/37] fix: remove all incredibuild steps --- .github/workflows/PR-4.x.yaml | 71 ++--------------------------------- 1 file changed, 3 insertions(+), 68 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 55fca60cc35d..19e79ad8c5db 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -17,10 +17,7 @@ jobs: shell: bash container: image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" - options: --user root --init - volumes: - - /ib-workspace/incredibuild:/ib-workspace/incredibuild - - /ib-workspace/cache:/ib-workspace/cache + env: CCACHE_DISABLE: "1" # CCACHE_MAXSIZE: "8G" @@ -34,68 +31,6 @@ jobs: CMAKE_BUILD_PARALLEL_LEVEL: 4 steps: - - name: Start Incredibuild - shell: bash - run: | - # Install Incredibuild - ls -la /ib-workspace/incredibuild/ - ls -la /ib-workspace/cache/db/ - ls -la /ib-workspace/cache/cache/ - du -h /ib-workspace/cache/ - /ib-workspace/incredibuild/incredibuild.ubin install -I -A /incredibuild -O localhost -D - echo "ps after installation" - ps aux - - # Stop Incredibuild before remapping folders - /opt/incredibuild/etc/init.d/incredibuild stop - echo "ps after stop" - ps aux - - - # Configure folder mapping (after install so /incredibuild is populated) - IB_INSTALL_DIR="/incredibuild" - VOLUME_DIR="/ib-workspace/cache" - SUBFOLDERS=("db" "cache" "log") - - echo "Configuring Incredibuild folder mappings..." - echo "Existing folders in $VOLUME_DIR:" - ls -la "$VOLUME_DIR" 2>/dev/null || echo " (directory not found or empty)" - - for folder in "${SUBFOLDERS[@]}"; do - TARGET_LINK="$IB_INSTALL_DIR/$folder" - VOL_DEST="$VOLUME_DIR/$folder" - - # 1. Ensure the destination directory exists on the volume - if [ ! -d "$VOL_DEST" ]; then - echo "Creating directory on volume: $VOL_DEST" - mkdir -p "$VOL_DEST" - - # If the installation created default files, move them to the volume - if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - echo "Moving initial data from $TARGET_LINK to $VOL_DEST" - cp -a "$TARGET_LINK/." "$VOL_DEST/" - fi - fi - - # 2. Create the Symlink - if [ -d "$TARGET_LINK" ] && [ ! -L "$TARGET_LINK" ]; then - echo "Removing local directory $TARGET_LINK to replace with symlink..." - rm -rf "$TARGET_LINK" - fi - - if [ ! -L "$TARGET_LINK" ]; then - echo "Linking $TARGET_LINK -> $VOL_DEST" - ln -s "$VOL_DEST" "$TARGET_LINK" - fi - done - - # Start Incredibuild with remapped folders - /opt/incredibuild/etc/init.d/incredibuild restart - ls -la /incredibuild/ - ls -la /incredibuild/cache/ - du -h /ib-workspace/cache/ - rm -f /usr/bin/ccache - - name: Checkout workflow repository uses: actions/checkout@v4 with: @@ -136,7 +71,7 @@ jobs: set -x echo "::group::Build" cd "$GITHUB_WORKSPACE" - /usr/bin/ib_console --standalone --build-cache-local-shared --debug=build_cache --build-cache-basedir=$PWD cmake --build build 2>&1 | tee build/log.txt + cmake --build build 2>&1 | tee build/log.txt echo "::endgroup::" - if: ${{ github.event.repository.name != 'opencv_contrib' }} @@ -168,7 +103,7 @@ jobs: set -x echo "::group::Build" cd "$GITHUB_WORKSPACE" - /usr/bin/ib_console --standalone --build-cache-local-shared --debug=build_cache --build-cache-basedir=$PWD cmake --build build-contrib 2>&1 | tee build-contrib/log.txt + cmake --build build-contrib 2>&1 | tee build-contrib/log.txt echo "::endgroup::" - name: Check build-contrib warnings From 0da4fb20ffb3da6dd0bdb38c855eafdb801183f2 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Mon, 16 Feb 2026 16:17:57 +0200 Subject: [PATCH 34/37] fix: restore the opencv build --- .github/workflows/PR-4.x.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 19e79ad8c5db..306e63ceb2c6 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -19,8 +19,7 @@ jobs: image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127" env: - CCACHE_DISABLE: "1" - # CCACHE_MAXSIZE: "8G" + CCACHE_MAXSIZE: "8G" CMAKE_OPT: >- -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON @@ -46,10 +45,10 @@ jobs: home: "${{ github.workspace }}" workdir: "${{ github.workspace }}" - # - name: Create cache directories - # run: | - # mkdir -p "$GITHUB_WORKSPACE/.ccache" - # mkdir -p "$GITHUB_WORKSPACE/binaries_cache" + - name: Create cache directories + run: | + mkdir -p "$GITHUB_WORKSPACE/.ccache" + mkdir -p "$GITHUB_WORKSPACE/binaries_cache" - if: ${{ github.event.repository.name != 'opencv_contrib' }} name: Configure OpenCV From 416eab57a1562b2eb29b055154e26521c98e33f5 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Thu, 12 Mar 2026 08:43:29 +0200 Subject: [PATCH 35/37] fix: add read permissions --- .github/workflows/PR-4.x.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 306e63ceb2c6..1f4e5c1e8fd8 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -12,6 +12,8 @@ concurrency: jobs: Ubuntu: runs-on: incredibuild-runner + permissions: + contents: read defaults: run: shell: bash From d1f24cfb9ae4125c234121fe39329d000aef52fd Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Mon, 30 Mar 2026 11:40:32 +0300 Subject: [PATCH 36/37] fix: permissions in CodeQL workflow --- .github/workflows/4.x.yml | 21 ++++++++++++--------- .github/workflows/PR-4.x.yaml | 3 +++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/4.x.yml b/.github/workflows/4.x.yml index 121878488ef9..0cce3fc0815c 100644 --- a/.github/workflows/4.x.yml +++ b/.github/workflows/4.x.yml @@ -1,14 +1,17 @@ name: 4.x on: - schedule: - - cron: '0 3 * * *' - workflow_dispatch: + schedule: + - cron: "0 3 * * *" + workflow_dispatch: jobs: - CodeQL: - uses: opencv/ci-gha-workflow/.github/workflows/OCV-CodeQL.yaml@main - with: - target_branch: '4.x' - workflow_branch: main - + CodeQL: + permissions: + actions: read + security-events: write + contents: read + uses: opencv/ci-gha-workflow/.github/workflows/OCV-CodeQL.yaml@main + with: + target_branch: "4.x" + workflow_branch: main diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 1f4e5c1e8fd8..97d4bc47323d 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -4,6 +4,9 @@ on: pull_request: branches: - 4.x + schedule: + - cron: "*/20 * * * *" + workflow_dispatch: concurrency: group: OCV-PR-Linux-${{ github.ref }} From e7ce7b9eb71859a6801c5582076447c4d64d1557 Mon Sep 17 00:00:00 2001 From: Tal Klainer Date: Tue, 5 May 2026 09:27:31 +0300 Subject: [PATCH 37/37] fix: no need to schedule --- .github/workflows/PR-4.x.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/PR-4.x.yaml b/.github/workflows/PR-4.x.yaml index 97d4bc47323d..4c691183563c 100644 --- a/.github/workflows/PR-4.x.yaml +++ b/.github/workflows/PR-4.x.yaml @@ -4,8 +4,6 @@ on: pull_request: branches: - 4.x - schedule: - - cron: "*/20 * * * *" workflow_dispatch: concurrency: