Add expand/collapse support to TreeView #4980
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Ubuntu Wheel | |
| permissions: {} | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| developer_build: | |
| description: 'Set to OFF for Release wheels' | |
| required: false | |
| default: 'ON' | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: [opened, reopened, synchronize] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| GCE_CLI_GHA_VERSION: '416.0.0' # Fixed to avoid dependency on API changes | |
| BUILD_CUDA_MODULE: 'ON' | |
| jobs: | |
| # Build CPU + CUDA open3d-devel packages, viewer .deb, and C++ tests bundle. | |
| # ML ops are OFF here (Python/Torch/TF ABI is wheel-stage only). | |
| build-lib: | |
| name: Build Lib | |
| runs-on: ubuntu-latest | |
| env: | |
| DEVELOPER_BUILD: 'ON' | |
| CCACHE_TAR_NAME: open3d-ubuntu-2204-cuda-ci-ccache | |
| OPEN3D_CPU_RENDERING: true | |
| BUILD_PYTORCH_OPS: 'OFF' | |
| BUILD_TENSORFLOW_OPS: 'OFF' | |
| steps: | |
| - name: Checkout source code | |
| uses: actions/checkout@v4 | |
| - name: Maximize build space | |
| run: | | |
| source util/ci_utils.sh | |
| maximize_ubuntu_github_actions_build_space | |
| - name: Docker build lib packages | |
| run: | | |
| # py310 is only used to satisfy docker_build.sh's Python arg; lib mode | |
| # does not build Python modules. | |
| docker/docker_build.sh cuda_wheel_py310_dev build-lib | |
| ls -lh open3d-devel-*.tar.xz open3d-viewer-*.deb open3d-cpp-tests.tar.xz | |
| - name: Upload devel packages | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: open3d-devel-packages | |
| path: | | |
| open3d-devel-*.tar.xz | |
| open3d-viewer-*.deb | |
| if-no-files-found: error | |
| - name: Upload C++ tests bundle | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: open3d-cpp-tests | |
| path: open3d-cpp-tests.tar.xz | |
| if-no-files-found: error | |
| retention-days: 1 | |
| # Runs in parallel with build-wheel (both need only build-lib). | |
| test-cpp: | |
| name: Test C++ | |
| runs-on: ubuntu-22.04 | |
| needs: [build-lib] | |
| steps: | |
| - name: Checkout source code | |
| uses: actions/checkout@v4 | |
| - name: Download C++ tests bundle | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: open3d-cpp-tests | |
| path: . | |
| - name: Install runtime dependencies | |
| # Open3D links against EGL for GPU-accelerated offscreen rendering | |
| # (see cpp/open3d/visualization/visualizer/EGLOffscreenContext.*). | |
| # This bare runner (unlike the docker_build.sh image) does not have | |
| # it installed by default. | |
| run: sudo apt-get update && sudo apt-get install --yes libegl1 | |
| - name: Run C++ unit tests | |
| run: | | |
| source util/ci_utils.sh | |
| run_cpp_tests_from_bundle open3d-cpp-tests.tar.xz | |
| build-wheel: | |
| needs: build-lib | |
| permissions: | |
| contents: write # Release upload | |
| id-token: write | |
| attestations: write | |
| artifact-metadata: write | |
| name: Build wheel | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python_version: ['3.10', '3.11', '3.12', '3.13', '3.14'] | |
| is_main: | |
| - ${{ github.ref == 'refs/heads/main' }} | |
| exclude: | |
| - is_main: false | |
| python_version: '3.10' | |
| - is_main: false | |
| python_version: '3.11' | |
| - is_main: false | |
| python_version: '3.12' | |
| - is_main: false | |
| python_version: '3.13' | |
| env: | |
| DEVELOPER_BUILD: ${{ github.event.inputs.developer_build || 'ON' }} | |
| PYTHON_VERSION: ${{ matrix.python_version }} | |
| CCACHE_TAR_NAME: open3d-ubuntu-2204-cuda-ci-ccache | |
| OPEN3D_CPU_RENDERING: true | |
| BUILD_PYTORCH_OPS: 'ON' | |
| # TensorFlow v2.20 only supports python 3.9-3.13 | |
| BUILD_TENSORFLOW_OPS: ${{ matrix.python_version >= '3.14' && 'OFF' || 'ON' }} | |
| steps: | |
| - name: Checkout source code | |
| uses: actions/checkout@v4 | |
| - name: Maximize build space | |
| run: | | |
| source util/ci_utils.sh | |
| maximize_ubuntu_github_actions_build_space | |
| - name: Download devel packages | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: open3d-devel-packages | |
| path: open3d-artifacts | |
| - name: List devel artifacts | |
| run: ls -lh open3d-artifacts/ | |
| # Stock nvidia/cuda base (no fat open3d-lib image). Wheels build against | |
| # extracted devel prefixes via OPEN3D_USE_INSTALLED_LIBRARY. | |
| - name: Docker build | |
| run: | | |
| export OPEN3D_ARTIFACTS_DIR="${GITHUB_WORKSPACE}/open3d-artifacts" | |
| if [ "${{ env.PYTHON_VERSION }}" = "3.10" ] && [ "${{ env.DEVELOPER_BUILD }}" = "ON" ]; then | |
| docker/docker_build.sh cuda_wheel_py310_dev | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.11" ] && [ "${{ env.DEVELOPER_BUILD }}" = "ON" ]; then | |
| docker/docker_build.sh cuda_wheel_py311_dev | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.12" ] && [ "${{ env.DEVELOPER_BUILD }}" = "ON" ]; then | |
| docker/docker_build.sh cuda_wheel_py312_dev | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.13" ] && [ "${{ env.DEVELOPER_BUILD }}" = "ON" ]; then | |
| docker/docker_build.sh cuda_wheel_py313_dev | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.14" ] && [ "${{ env.DEVELOPER_BUILD }}" = "ON" ]; then | |
| docker/docker_build.sh cuda_wheel_py314_dev | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.10" ] && [ "${{ env.DEVELOPER_BUILD }}" = "OFF" ]; then | |
| docker/docker_build.sh cuda_wheel_py310 | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.11" ] && [ "${{ env.DEVELOPER_BUILD }}" = "OFF" ]; then | |
| docker/docker_build.sh cuda_wheel_py311 | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.12" ] && [ "${{ env.DEVELOPER_BUILD }}" = "OFF" ]; then | |
| docker/docker_build.sh cuda_wheel_py312 | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.13" ] && [ "${{ env.DEVELOPER_BUILD }}" = "OFF" ]; then | |
| docker/docker_build.sh cuda_wheel_py313 | |
| elif [ "${{ env.PYTHON_VERSION }}" = "3.14" ] && [ "${{ env.DEVELOPER_BUILD }}" = "OFF" ]; then | |
| docker/docker_build.sh cuda_wheel_py314 | |
| fi | |
| shopt -s failglob | |
| PIP_PKG_NAME="$(basename ${GITHUB_WORKSPACE}/open3d-[0-9]*.whl)" | |
| PIP_CPU_PKG_NAME="$(basename ${GITHUB_WORKSPACE}/open3d_cpu*.whl)" | |
| echo "PIP_PKG_NAME=$PIP_PKG_NAME" >> $GITHUB_ENV | |
| echo "PIP_CPU_PKG_NAME=$PIP_CPU_PKG_NAME" >> $GITHUB_ENV | |
| - name: Generate artifact attestation | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| uses: actions/attest@v4 | |
| with: | |
| subject-path: | | |
| ${{ github.workspace }}/${{ env.PIP_PKG_NAME }} | |
| ${{ github.workspace }}/${{ env.PIP_CPU_PKG_NAME }} | |
| - name: Upload wheel to GitHub artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.PIP_PKG_NAME }} | |
| path: | | |
| ${{ env.PIP_PKG_NAME }} | |
| ${{ env.PIP_CPU_PKG_NAME }} | |
| if-no-files-found: error | |
| - name: Update devel release | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| .github/workflows/update_release.sh ${GITHUB_WORKSPACE}/${{ env.PIP_PKG_NAME }} \ | |
| ${GITHUB_WORKSPACE}/${{ env.PIP_CPU_PKG_NAME }} | |
| - name: GCloud CLI auth | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| uses: 'google-github-actions/auth@v2' | |
| with: | |
| project_id: ${{ secrets.GCE_PROJECT }} | |
| credentials_json: '${{ secrets.GCE_SA_KEY_GPU_CI }}' | |
| - name: GCloud CLI setup | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| uses: google-github-actions/setup-gcloud@v2 | |
| with: | |
| version: ${{ env.GCE_CLI_GHA_VERSION }} | |
| project_id: ${{ secrets.GCE_PROJECT }} | |
| - name: Upload ccache to GCS | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| run: | | |
| gsutil cp ${GITHUB_WORKSPACE}/${{ env.CCACHE_TAR_NAME }}.tar.xz gs://open3d-ci-cache/ | |
| test-wheel-cpu: | |
| name: Test wheel CPU | |
| permissions: | |
| contents: read | |
| runs-on: ubuntu-22.04 | |
| needs: [build-wheel] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python_version: ['3.10', '3.11', '3.12', '3.13', '3.14'] | |
| is_main: | |
| - ${{ github.ref == 'refs/heads/main' }} | |
| exclude: | |
| - is_main: false | |
| python_version: '3.10' | |
| - is_main: false | |
| python_version: '3.11' | |
| - is_main: false | |
| python_version: '3.12' | |
| - is_main: false | |
| python_version: '3.13' | |
| env: | |
| OPEN3D_ML_ROOT: ${{ github.workspace }}/Open3D-ML | |
| BUILD_PYTORCH_OPS: 'ON' | |
| # TensorFlow v2.20 only supports python 3.9-3.13 | |
| BUILD_TENSORFLOW_OPS: ${{ matrix.python_version >= '3.14' && 'OFF' || 'ON' }} | |
| steps: | |
| - name: Checkout source code | |
| uses: actions/checkout@v4 | |
| - name: Maximize build space | |
| run: | | |
| source util/ci_utils.sh | |
| maximize_ubuntu_github_actions_build_space | |
| - name: Checkout Open3D-ML source code | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: isl-org/Open3D-ML | |
| ref: main | |
| path: ${{ env.OPEN3D_ML_ROOT }} | |
| - name: Download wheels | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: open3d*-manylinux*.whl | |
| merge-multiple: true | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python_version }} | |
| - name: Install runtime dependencies | |
| # Open3D links against EGL for GPU-accelerated offscreen rendering | |
| # (see cpp/open3d/visualization/visualizer/EGLOffscreenContext.*). | |
| # This bare runner (unlike the docker_build.sh image) does not have | |
| # it installed by default. | |
| run: sudo apt-get update && sudo apt-get install --yes libegl1 | |
| - name: Test Python package | |
| run: | | |
| python -V | |
| source util/ci_utils.sh | |
| pi_tag=$(python -c "import sys; print(f'cp{sys.version_info.major}{sys.version_info.minor}')") | |
| test_wheel open3d-[0-9]*-"$pi_tag"-*.whl | |
| - name: Run Python unit tests | |
| run: | | |
| source util/ci_utils.sh | |
| echo "Running Open3D python tests..." | |
| run_python_tests | |
| - name: Test Python package (CPU) | |
| env: | |
| BUILD_CUDA_MODULE: OFF | |
| run: | | |
| python -V | |
| source util/ci_utils.sh | |
| pi_tag=$(python -c "import sys; print(f'cp{sys.version_info.major}{sys.version_info.minor}')") | |
| test_wheel open3d_cpu*-"$pi_tag"-*.whl | |
| - name: Run Python unit tests (CPU) | |
| run: | | |
| source util/ci_utils.sh | |
| echo "Running Open3D python tests (CPU wheel)..." | |
| run_python_tests |