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 }} 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 }} diff --git a/.github/workflows/docks_upload.yaml b/.github/workflows/docks_upload.yaml new file mode 100644 index 00000000..13bb90f3 --- /dev/null +++ b/.github/workflows/docks_upload.yaml @@ -0,0 +1,98 @@ +name: build docks + +on: + push: + branches: + - main + pull_request: + branches: + - main + 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' + 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: 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 + diff --git a/.github/workflows/docks_upload2.yaml b/.github/workflows/docks_upload2.yaml new file mode 100644 index 00000000..bd94182d --- /dev/null +++ b/.github/workflows/docks_upload2.yaml @@ -0,0 +1,97 @@ +name: build docks + +on: + push: + branches: + - main + pull_request: + branches: + - main + 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' + 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=5.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