diff --git a/.github/workflows/OCV-PR-Linux.yaml b/.github/workflows/OCV-PR-Linux.yaml index 1df0008c..afba9ec7 100644 --- a/.github/workflows/OCV-PR-Linux.yaml +++ b/.github/workflows/OCV-PR-Linux.yaml @@ -48,11 +48,11 @@ jobs: strategy: # NOTE: Debugging # fail-fast: true - # max-parallel: 3 fail-fast: false - max-parallel: 3 + max-parallel: 4 matrix: version: + - '26.04' - '24.04' - '22.04' - '20.04' @@ -60,6 +60,13 @@ jobs: # - '24.04_asan' branch: ${{ fromJSON(needs.branch_eval.outputs.branches )}} include: + - version: '26.04' + image: '26.04:20260425' + jpegxl: true + avif: true + avx2: true + gphoto2: true + aravis: true - version: '24.04' image: '24.04:20251127' jpegxl: true @@ -117,7 +124,7 @@ jobs: ${{ matrix.plugins && '-DVIDEOIO_PLUGIN_LIST=all -DHIGHGUI_PLUGIN_LIST=all' }} ${{ matrix.limited_api && '-DPYTHON3_LIMITED_API=ON' }} ${{ matrix.asan && '-DENABLE_OMIT_FRAME_POINTER=OFF -DCMAKE_CXX_FLAGS="-fsanitize=address"' }} - HOME: ${{ contains(matrix.image, '24.04') && '/home/ubuntu' || '/home/ci' }} + HOME: ${{ ( contains(matrix.image, '24.04') || contains(matrix.image, '26.04') ) && '/home/ubuntu' || '/home/ci' }} MAIN_BUILD_DIR: "${{ (github.event.repository.name != 'opencv_contrib') && 'build' || 'build-contrib' }}" # NOTE: CN config OPENCV_FOR_THREADS_NUM: 8 diff --git a/docker/ubuntu/Dockerfile-26 b/docker/ubuntu/Dockerfile-26 new file mode 100644 index 00000000..df764b3a --- /dev/null +++ b/docker/ubuntu/Dockerfile-26 @@ -0,0 +1,95 @@ +# Version: 20260425 +# Image name: quay.io/opencv-ci/opencv-ubuntu-26.04 + +FROM ubuntu:26.04 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + software-properties-common \ + curl \ + zip \ + unzip \ + wget \ + rsync \ + mc \ + nano \ + time \ + git \ + file + +RUN \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + cmake \ + build-essential \ + ccache \ + ninja-build \ + ant \ + ant-optional \ + default-jdk \ + python3-dev \ + python3-setuptools \ + python3-pip \ + zlib1g-dev \ + libjpeg-dev \ + libpng-dev \ + libtiff5-dev \ + libopenjp2-7-dev \ + libavif-dev \ + libjxl-dev \ + libopenexr-dev \ + libgtk-3-dev \ + libgtk-4-dev \ + libcamera-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libavdevice-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-ugly \ + gstreamer1.0-libav \ + libopenni2-dev \ + libaravis-dev \ + libdc1394-dev \ + libgphoto2-dev \ + hdf5-tools \ + libleptonica6 \ + libhdf5-dev \ + libgdal-dev \ + libgoogle-glog-dev \ + libarmadillo-dev \ + libeigen3-dev \ + libsuitesparse-dev \ + liblapacke-dev \ + libopenblas-dev \ + libeigen3-dev \ + libglfw3-dev \ + libceres-dev \ + lcov \ + xvfb \ + pkg-config + +RUN python3 -m pip install --break-system-packages \ + numpy \ + pylint \ + requests \ + cairosvg && \ + pip cache purge + +# Self-hosted runner UID is 1000 + +USER ubuntu + +RUN \ + mkdir $HOME/opencv $HOME/opencv_contrib $HOME/build && \ + git config --global --add safe.directory "*" && \ + git config --global user.email "opencv.ci" && \ + git config --global user.name "opencv.ci" && \ + git config --global pull.rebase false + +CMD bash