From 620f402c7a9c5d0554d2e44d6fd41bb7ff1db9cb Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Wed, 23 Apr 2025 19:55:38 +0300 Subject: [PATCH 1/9] testing use default python for Mac os ARM --- .github/workflows/OCV-PR-4.x-macOS-ARM64.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml b/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml index 193b2308..12870722 100644 --- a/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml +++ b/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml @@ -13,7 +13,7 @@ concurrency: cancel-in-progress: true env: - EXTRA_CMAKE_OPTIONS: '-DBUILD_DOCS=ON -DWITH_IMGCODEC_GIF=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_DOWNLOAD_PATH=$BINARIES_CACHE -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_ZLIB=OFF -DWITH_OPENCL=OFF' + EXTRA_CMAKE_OPTIONS: '-DBUILD_DOCS=ON -DWITH_IMGCODEC_GIF=ON -DOPENCV_DOWNLOAD_PATH=$BINARIES_CACHE -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_ZLIB=OFF -DWITH_OPENCL=OFF' PR_AUTHOR: ${{ github.event.pull_request.user.login }} PR_AUTHOR_FORK: ${{ github.event.pull_request.head.repo.full_name }} SOURCE_BRANCH_NAME: ${{ github.head_ref }} From 9782e201fe3ed2795c20723f6234625d24093ab8 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Sun, 27 Apr 2025 14:04:47 +0300 Subject: [PATCH 2/9] testing use default python for Mac os Intel --- .github/workflows/OCV-PR-4.x-macOS-x86_64.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml b/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml index 60758a79..71918a74 100644 --- a/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml +++ b/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml @@ -13,7 +13,7 @@ concurrency: cancel-in-progress: true env: - EXTRA_CMAKE_OPTIONS: '-DBUILD_DOCS=ON -DWITH_IMGCODEC_GIF=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_DOWNLOAD_PATH=$BINARIES_CACHE -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_ZLIB=OFF' + EXTRA_CMAKE_OPTIONS: '-DBUILD_DOCS=ON -DWITH_IMGCODEC_GIF=ON -DOPENCV_DOWNLOAD_PATH=$BINARIES_CACHE -DBUILD_EXAMPLES=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_ZLIB=OFF' PR_AUTHOR: ${{ github.event.pull_request.user.login }} PR_AUTHOR_FORK: ${{ github.event.pull_request.head.repo.full_name }} SOURCE_BRANCH_NAME: ${{ github.head_ref }} From 8c4d895dfa906a376ac19c9b65d27b611b107b02 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 12:46:38 +0300 Subject: [PATCH 3/9] Create docks_upload.yaml --- .github/workflows/docks_upload.yaml | 95 +++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/docks_upload.yaml diff --git a/.github/workflows/docks_upload.yaml b/.github/workflows/docks_upload.yaml new file mode 100644 index 00000000..a93b9bcc --- /dev/null +++ b/.github/workflows/docks_upload.yaml @@ -0,0 +1,95 @@ +name: build docks + +on: + push: + branches: + - main + pull_request: + branches: + - main +concurrency: + group: OCV-PR-4.x-docs-${{ github.ref }} + cancel-in-progress: true + +env: + EXTRA_CMAKE_OPTIONS: '-DOPENCV_ENABLE_NONFREE=ON -DBUILD_DOCS_JS_BINDINGS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_DOCS=ON -DOPENCV_DOCS_HAVE_DOT=YES -DBUILD_TESTS=ON -DWITH_OPENNI2=ON -DWITH_GDCM=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_EXTRA_MODULES_PATH=/home/ci/opencv_contrib/modules -DWITH_GDAL=ON -DBUILD_EXAMPLES=ON -DBUILD_PERF_TESTS=ON -DWITH_IPP=OFF' + SOURCE_BRANCH_NAME: ${{ github.head_ref || '4.x' }} + TARGET_BRANCH_NAME: ${{ github.base_ref || '4.x' }} + OPENCV_DOCKER_WORKDIR: '/home/ci/opencv' + OPENCV_EXTRA_DOCKER_WORKDIR: '/home/ci/opencv_extra' + OPENCV_CONTRIB_DOCKER_WORKDIR: '/home/ci/opencv_contrib' + +jobs: + + BuildAndTest: + runs-on: ubuntu-22.04 + defaults: + run: + shell: bash + container: + image: quay.io/opencv-ci/opencv-docs-22.04:20241202 + options: --user ci + steps: + - uses: actions/checkout@v4 + with: + repository: opencv/ci-gha-workflow + ref: ${{ github.repository == 'opencv/ci-gha-workflow' && github.ref || 'main' }} + - name: Define proper HOME path + timeout-minutes: 60 + run: echo "HOME=/home/ci" >> $GITHUB_ENV + - name: Setup infra environment + timeout-minutes: 60 + if: ${{ github.event.repository.name == 'ci-gha-workflow' }} + run: echo "TARGET_BRANCH_NAME=4.x" >> $GITHUB_ENV + - name: PR info + timeout-minutes: 60 + run: | + echo "PR Author: ${{ env.PR_AUTHOR }}" + echo "PR Author fork: ${{ env.PR_AUTHOR_FORK }}" + echo "Source branch name: ${{ env.SOURCE_BRANCH_NAME }}" + echo "Target branch name: ${{ env.TARGET_BRANCH_NAME }}" + - name: Clean + timeout-minutes: 60 + run: find ${{ env.OPENCV_DOCKER_WORKDIR }} -mindepth 1 -delete + - name: Clone opencv + timeout-minutes: 60 + run: | + git clone --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv.git ${{ env.OPENCV_DOCKER_WORKDIR }} + cd ${{ env.OPENCV_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + - name: Clone opencv_extra + timeout-minutes: 60 + run: | + git clone --single-branch --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv_extra.git $HOME/opencv_extra + cd ${{ env.OPENCV_EXTRA_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV_EXTRA=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + + - name: Clone opencv_contrib + timeout-minutes: 60 + id: last-repo-step + run: | + git clone --single-branch --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv_contrib.git $HOME/opencv_contrib + cd ${{ env.OPENCV_CONTRIB_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV_CONTRIB=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + + - name: Configure OpenCV doxygen + if: ${{ always() && steps.last-repo-step.outcome == 'success' }} + id: opencv-doxygen + timeout-minutes: 60 + run: | + cd $HOME/build + cmake ${{ env.EXTRA_CMAKE_OPTIONS }} ${{ env.OPENCV_DOCKER_WORKDIR }} + + - name: Build OpenCV doxygen + if: ${{ always() && steps.opencv-doxygen.outcome == 'success' }} + timeout-minutes: 60 + id: build-opencv + working-directory: ${{ env.HOME }}/build + run: cmake --build . --config release --target doxygen -- -j$(nproc) 2>&1 | tee log.txt + + - name: Archive docs + uses: actions/upload-artifact@v4 + with: + name: opencv-docs-html + path: ${{ env.HOME }}/build/doc/doxygen/html + From 50d1ca9d8203b658f2f4eb3ef21933e5629c159d Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 13:40:49 +0300 Subject: [PATCH 4/9] Update docks_upload.yaml --- .github/workflows/docks_upload.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docks_upload.yaml b/.github/workflows/docks_upload.yaml index a93b9bcc..59313bc9 100644 --- a/.github/workflows/docks_upload.yaml +++ b/.github/workflows/docks_upload.yaml @@ -86,10 +86,14 @@ jobs: id: build-opencv working-directory: ${{ env.HOME }}/build run: cmake --build . --config release --target doxygen -- -j$(nproc) 2>&1 | tee log.txt - + + - name: Set DOC_VERSION + run: | + echo "DOC_VERSION=$(basename '${{ github.ref_name }}')" >> $GITHUB_ENV + - name: Archive docs uses: actions/upload-artifact@v4 with: - name: opencv-docs-html + name: opencv-docs-${{ env.DOC_VERSION }} path: ${{ env.HOME }}/build/doc/doxygen/html From d154e801cc05114dc1f99c62ed010da6ac07a41d Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 13:55:40 +0300 Subject: [PATCH 5/9] Update docks_upload.yaml --- .github/workflows/docks_upload.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docks_upload.yaml b/.github/workflows/docks_upload.yaml index 59313bc9..9888b9f7 100644 --- a/.github/workflows/docks_upload.yaml +++ b/.github/workflows/docks_upload.yaml @@ -89,7 +89,7 @@ jobs: - name: Set DOC_VERSION run: | - echo "DOC_VERSION=$(basename '${{ github.ref_name }}')" >> $GITHUB_ENV + echo "DOC_VERSION=$(basename '${{ env.SOURCE_BRANCH_NAME }}')" >> $GITHUB_ENV - name: Archive docs uses: actions/upload-artifact@v4 From a0b1de16fbb6b19bd56aa2d06fb6c2a561fb37e5 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 14:02:55 +0300 Subject: [PATCH 6/9] Create docks_upload2.yaml --- .github/workflows/docks_upload2.yaml | 98 ++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/docks_upload2.yaml diff --git a/.github/workflows/docks_upload2.yaml b/.github/workflows/docks_upload2.yaml new file mode 100644 index 00000000..dc7c370b --- /dev/null +++ b/.github/workflows/docks_upload2.yaml @@ -0,0 +1,98 @@ +name: build docks + +on: + push: + branches: + - main + pull_request: + branches: + - main +concurrency: + group: OCV-PR-5.x-docs-${{ github.ref }} + cancel-in-progress: true + +env: + EXTRA_CMAKE_OPTIONS: '-DOPENCV_ENABLE_NONFREE=ON -DBUILD_DOCS_JS_BINDINGS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_DOCS=ON -DOPENCV_DOCS_HAVE_DOT=YES -DBUILD_TESTS=ON -DWITH_OPENNI2=ON -DWITH_GDCM=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_EXTRA_MODULES_PATH=/home/ci/opencv_contrib/modules -DWITH_GDAL=ON -DBUILD_EXAMPLES=ON -DBUILD_PERF_TESTS=ON -DWITH_IPP=OFF' + SOURCE_BRANCH_NAME: ${{ github.head_ref || '5.x' }} + TARGET_BRANCH_NAME: ${{ github.base_ref || '5.x' }} + OPENCV_DOCKER_WORKDIR: '/home/ci/opencv' + OPENCV_EXTRA_DOCKER_WORKDIR: '/home/ci/opencv_extra' + OPENCV_CONTRIB_DOCKER_WORKDIR: '/home/ci/opencv_contrib' + +jobs: + + BuildAndTest: + runs-on: ubuntu-22.04 + defaults: + run: + shell: bash + container: + image: quay.io/opencv-ci/opencv-docs-22.04:20241202 + options: --user ci + steps: + - uses: actions/checkout@v4 + with: + repository: opencv/ci-gha-workflow + ref: ${{ github.repository == 'opencv/ci-gha-workflow' && github.ref || 'main' }} + - name: Define proper HOME path + timeout-minutes: 60 + run: echo "HOME=/home/ci" >> $GITHUB_ENV + - name: Setup infra environment + timeout-minutes: 60 + if: ${{ github.event.repository.name == 'ci-gha-workflow' }} + run: echo "TARGET_BRANCH_NAME=4.x" >> $GITHUB_ENV + - name: PR info + timeout-minutes: 60 + run: | + echo "PR Author: ${{ env.PR_AUTHOR }}" + echo "PR Author fork: ${{ env.PR_AUTHOR_FORK }}" + echo "Source branch name: ${{ env.SOURCE_BRANCH_NAME }}" + echo "Target branch name: ${{ env.TARGET_BRANCH_NAME }}" + - name: Clean + timeout-minutes: 60 + run: find ${{ env.OPENCV_DOCKER_WORKDIR }} -mindepth 1 -delete + - name: Clone opencv + timeout-minutes: 60 + run: | + git clone --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv.git ${{ env.OPENCV_DOCKER_WORKDIR }} + cd ${{ env.OPENCV_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + - name: Clone opencv_extra + timeout-minutes: 60 + run: | + git clone --single-branch --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv_extra.git $HOME/opencv_extra + cd ${{ env.OPENCV_EXTRA_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV_EXTRA=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + + - name: Clone opencv_contrib + timeout-minutes: 60 + id: last-repo-step + run: | + git clone --single-branch --branch ${{ env.TARGET_BRANCH_NAME }} https://github.com/opencv/opencv_contrib.git $HOME/opencv_contrib + cd ${{ env.OPENCV_CONTRIB_DOCKER_WORKDIR }} + echo "LATEST_COMMIT_OPENCV_CONTRIB=$(git log -n 1 ${{ env.TARGET_BRANCH_NAME }} --pretty=format:'%H')" >> $GITHUB_ENV + + - name: Configure OpenCV doxygen + if: ${{ always() && steps.last-repo-step.outcome == 'success' }} + id: opencv-doxygen + timeout-minutes: 60 + run: | + cd $HOME/build + cmake ${{ env.EXTRA_CMAKE_OPTIONS }} ${{ env.OPENCV_DOCKER_WORKDIR }} + + - name: Build OpenCV doxygen + if: ${{ always() && steps.opencv-doxygen.outcome == 'success' }} + timeout-minutes: 60 + id: build-opencv + working-directory: ${{ env.HOME }}/build + run: cmake --build . --config release --target doxygen -- -j$(nproc) 2>&1 | tee log.txt + + - name: Set DOC_VERSION + run: | + echo "DOC_VERSION=$(basename '${{ env.SOURCE_BRANCH_NAME }}')" >> $GITHUB_ENV + + - name: Archive docs + uses: actions/upload-artifact@v4 + with: + name: opencv-docs-${{ env.DOC_VERSION }} + path: ${{ env.HOME }}/build/doc/doxygen/html From 344bfcbdac1648cc0baa88b89feebb60de569122 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 14:15:36 +0300 Subject: [PATCH 7/9] Update docks_upload2.yaml --- .github/workflows/docks_upload2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docks_upload2.yaml b/.github/workflows/docks_upload2.yaml index dc7c370b..edb291de 100644 --- a/.github/workflows/docks_upload2.yaml +++ b/.github/workflows/docks_upload2.yaml @@ -40,7 +40,7 @@ jobs: - name: Setup infra environment timeout-minutes: 60 if: ${{ github.event.repository.name == 'ci-gha-workflow' }} - run: echo "TARGET_BRANCH_NAME=4.x" >> $GITHUB_ENV + run: echo "TARGET_BRANCH_NAME=5.x" >> $GITHUB_ENV - name: PR info timeout-minutes: 60 run: | From f1451c178949321773e87965b37c596406216284 Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 14:28:53 +0300 Subject: [PATCH 8/9] Update docks_upload.yaml --- .github/workflows/docks_upload.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docks_upload.yaml b/.github/workflows/docks_upload.yaml index 9888b9f7..13bb90f3 100644 --- a/.github/workflows/docks_upload.yaml +++ b/.github/workflows/docks_upload.yaml @@ -7,9 +7,8 @@ on: pull_request: branches: - main -concurrency: - group: OCV-PR-4.x-docs-${{ github.ref }} - cancel-in-progress: true + schedule: + - cron: '0 3 * * *' env: EXTRA_CMAKE_OPTIONS: '-DOPENCV_ENABLE_NONFREE=ON -DBUILD_DOCS_JS_BINDINGS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_DOCS=ON -DOPENCV_DOCS_HAVE_DOT=YES -DBUILD_TESTS=ON -DWITH_OPENNI2=ON -DWITH_GDCM=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_EXTRA_MODULES_PATH=/home/ci/opencv_contrib/modules -DWITH_GDAL=ON -DBUILD_EXAMPLES=ON -DBUILD_PERF_TESTS=ON -DWITH_IPP=OFF' From 3c98a03ea4b887d20897ed29acbeb24c267dc4bf Mon Sep 17 00:00:00 2001 From: Ivan Avdeev Date: Tue, 29 Apr 2025 14:29:24 +0300 Subject: [PATCH 9/9] Update docks_upload2.yaml --- .github/workflows/docks_upload2.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docks_upload2.yaml b/.github/workflows/docks_upload2.yaml index edb291de..bd94182d 100644 --- a/.github/workflows/docks_upload2.yaml +++ b/.github/workflows/docks_upload2.yaml @@ -7,9 +7,8 @@ on: pull_request: branches: - main -concurrency: - group: OCV-PR-5.x-docs-${{ github.ref }} - cancel-in-progress: true + schedule: + - cron: '0 4 * * *' env: EXTRA_CMAKE_OPTIONS: '-DOPENCV_ENABLE_NONFREE=ON -DBUILD_DOCS_JS_BINDINGS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_DOCS=ON -DOPENCV_DOCS_HAVE_DOT=YES -DBUILD_TESTS=ON -DWITH_OPENNI2=ON -DWITH_GDCM=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DOPENCV_EXTRA_MODULES_PATH=/home/ci/opencv_contrib/modules -DWITH_GDAL=ON -DBUILD_EXAMPLES=ON -DBUILD_PERF_TESTS=ON -DWITH_IPP=OFF'