Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
7f84123
test: run build on hosted grid
talklainerib Feb 2, 2026
455cb4e
fix: run the build on the incredibuild-runner and not on the containe…
talklainerib Feb 3, 2026
03174ef
fix: install requests
talklainerib Feb 3, 2026
0ede001
fix: remove download dnn step
talklainerib Feb 3, 2026
db9241e
fix: add step to install cmake
talklainerib Feb 3, 2026
1532895
fix: add ib_console to cmake
talklainerib Feb 4, 2026
7389453
fix: remove test step
talklainerib Feb 4, 2026
aefca47
fix: restore ib_console
talklainerib Feb 4, 2026
e9313aa
fix: cmake is installed as part of the runner
talklainerib Feb 4, 2026
38fb974
fix: use container with mount from the incredibuild-runner
talklainerib Feb 12, 2026
53c3667
fix: make sure we have the opt/incredibuild files
talklainerib Feb 12, 2026
2d541d7
fix: add verify folders
talklainerib Feb 12, 2026
aa27672
fix: mount on /ib-workspace
talklainerib Feb 12, 2026
2ebab9d
fix: install incredibuild
talklainerib Feb 12, 2026
f280028
fix: install incredibuild
talklainerib Feb 12, 2026
ce14b4f
fix: map folders in the incredibuild
talklainerib Feb 12, 2026
720990f
fix: stop and star incredibuild
talklainerib Feb 12, 2026
c9051b3
fix: ls incredibuild folder
talklainerib Feb 12, 2026
ad2bf1e
making sure the persist volume is available
talklainerib Feb 12, 2026
837edb9
fix: use /ib-workspace/incredibuild
talklainerib Feb 12, 2026
d4bd1b3
fix: map also the cache volume
talklainerib Feb 12, 2026
64a04c0
fix: use restart
talklainerib Feb 12, 2026
f0f735c
fix: add ps after install
talklainerib Feb 12, 2026
3a345d5
fix: add ps after stop
talklainerib Feb 12, 2026
4e2895b
fix: add init option
talklainerib Feb 12, 2026
3c9f7ea
fix: run on runner
talklainerib Feb 12, 2026
f4886f3
fix: workspace folder
talklainerib Feb 12, 2026
d52e9a8
fix: ls the cache folder
talklainerib Feb 15, 2026
9fcd892
fix: add debug cache
talklainerib Feb 15, 2026
f7c339e
fix: add du of the cache folder
talklainerib Feb 15, 2026
f1b13e5
fix: disable ccache
talklainerib Feb 15, 2026
0b203c3
fix: remove ccache
talklainerib Feb 15, 2026
338b0e9
fix: remove all incredibuild steps
talklainerib Feb 16, 2026
0da4fb2
fix: restore the opencv build
talklainerib Feb 16, 2026
416eab5
fix: add read permissions
talklainerib Mar 12, 2026
d1f24cf
fix: permissions in CodeQL workflow
talklainerib Mar 30, 2026
e7ce7b9
fix: no need to schedule
talklainerib May 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions .github/workflows/4.x.yml
Original file line number Diff line number Diff line change
@@ -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
169 changes: 119 additions & 50 deletions .github/workflows/PR-4.x.yaml
Original file line number Diff line number Diff line change
@@ -1,55 +1,124 @@
name: PR:4.x

on:
pull_request:
branches:
- 4.x
pull_request:
branches:
- 4.x
workflow_dispatch:

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:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Warning — All 14 original CI jobs removed: Linux, Windows, ARM64, macOS, iOS, Android, TIM-VX, CUDA, OpenVINO, docs, and RISC-V jobs have all been deleted. If this is a permanent change to 4.x, OpenCV loses all cross-platform PR gating. If it's a temporary test branch, the PR description should state that explicitly and the target branch should be changed accordingly. The checklist item 'The PR is proposed to the proper branch' is currently unchecked.

runs-on: incredibuild-runner
permissions:
contents: read
defaults:
run:
shell: bash
container:
image: "quay.io/opencv-ci/opencv-ubuntu-24.04:20251127"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion — Pin container image by digest, not tag: The tag 20251127 is mutable and could be overwritten, silently changing the build environment. For reproducible and tamper-resistant builds use a SHA256 digest: quay.io/opencv-ci/opencv-ubuntu-24.04@sha256:<digest>.


env:
CCACHE_MAXSIZE: "8G"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Warning — Dead CCACHE_MAXSIZE env var: ccache was removed in a prior commit (fix: remove ccache) but CCACHE_MAXSIZE: "8G" remains. This is misleading — it suggests ccache is active when it isn't. Remove the env var.

CMAKE_OPT: >-
-DBUILD_DOCS=ON
-DBUILD_EXAMPLES=ON
-DOPENCV_ENABLE_NONFREE=ON
-DWITH_IMGCODEC_GIF=ON
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 }}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Critical — Null context on schedule/workflow_dispatch runs: github.event.pull_request.user.login and github.head_ref both expand to empty string when the trigger is not pull_request. The checkout-and-merge action will receive empty author and source_branch inputs, causing it to silently check out the wrong ref or fail. Fix: wrap these steps with if: github.event_name == 'pull_request' or provide fallback expressions like ${{ github.event.pull_request.user.login || github.actor }}.

source_branch: "${{ github.head_ref }}"
home: "${{ github.workspace }}"
workdir: "${{ github.workspace }}"

- 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
run: |
echo "::group::Configure"
cd "$GITHUB_WORKSPACE"
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
run: |
set -x
echo "::group::Build"
cd "$GITHUB_WORKSPACE"
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 \
"$GITHUB_WORKSPACE/build/log.txt"
if [ $? -ne 0 ]; then
echo "WARNINGS=1" >> $GITHUB_ENV
fi

- name: Configure OpenCV with contrib
run: |
echo "::group::Configure"
cd "$GITHUB_WORKSPACE"
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
run: |
set -x
echo "::group::Build"
cd "$GITHUB_WORKSPACE"
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 \
"$GITHUB_WORKSPACE/build-contrib/log.txt"
if [ $? -ne 0 ]; then
echo "WARNINGS=1" >> $GITHUB_ENV
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suggestion — WARNINGS=1 collision loses source info: Both the opencv-only and opencv-contrib warning checks write WARNINGS=1 to $GITHUB_ENV. The final step fires on either, but you lose which build triggered it. Consider OPENCV_WARNINGS=1 and CONTRIB_WARNINGS=1 so logs and downstream steps can distinguish between the two.

fi

- if: ${{ always() && env.WARNINGS == '1' }}
name: Warnings check
run: |
echo "::error Warnings have been found!"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Critical — ::error annotation syntax is wrong: echo "::error Warnings have been found!" will print plain text — it will not create a GitHub Actions error annotation. The correct syntax requires a second :: separator before the message. Fix: echo "::error::Warnings have been found!"

exit 1
Loading