From 1a8767051d21ac702cb822c5c3ab646f10fa52be Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Tue, 25 Jul 2023 18:41:04 +0200 Subject: [PATCH] Update exporter.py to raise errors on export failure (#3951) --- .github/workflows/ci.yaml | 6 +++--- .github/workflows/docker.yaml | 8 ++++---- ultralytics/engine/exporter.py | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cf21286..3d505d5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -162,12 +162,12 @@ jobs: cache: 'pip' # caching pip dependencies - name: Install requirements shell: bash # for Windows compatibility - run: | + run: | # CoreML must be installed before export due to protobuf error from AutoInstall python -m pip install --upgrade pip wheel if [ "${{ matrix.torch }}" == "1.8.0" ]; then - pip install -e . torch==1.8.0 torchvision==0.9.0 pytest --extra-index-url https://download.pytorch.org/whl/cpu + pip install -e . torch==1.8.0 torchvision==0.9.0 pytest 'coremltools>=6.0,<=6.2' --extra-index-url https://download.pytorch.org/whl/cpu else - pip install -e . pytest --extra-index-url https://download.pytorch.org/whl/cpu + pip install -e . pytest 'coremltools>=6.0,<=6.2' --extra-index-url https://download.pytorch.org/whl/cpu fi - name: Check environment run: | diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index ad10e60..1cf4b49 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -49,7 +49,6 @@ jobs: platforms: "linux/amd64" steps: - name: Checkout repo - if: github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile uses: actions/checkout@v3 - name: Set up QEMU @@ -65,21 +64,22 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build Image + if: github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile run: | docker build --platform ${{ matrix.platforms }} -f docker/${{ matrix.dockerfile }} -t ultralytics/ultralytics:${{ matrix.tags }} . - name: Run Tests - if: matrix.platforms == 'linux/amd64' # arm64 images not supported on GitHub CI runners + if: (github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile) && matrix.platforms == 'linux/amd64' # arm64 images not supported on GitHub CI runners run: | docker run ultralytics/ultralytics:${{ matrix.tags }} /bin/bash -c "pip install pytest && pytest tests" - name: Run Benchmarks - if: matrix.platforms == 'linux/amd64' # arm64 images not supported on GitHub CI runners + if: (github.event_name == 'push' || github.event.inputs.dockerfile == matrix.dockerfile) && matrix.platforms == 'linux/amd64' # arm64 images not supported on GitHub CI runners run: | docker run ultralytics/ultralytics:${{ matrix.tags }} yolo benchmark model=yolov8n.pt imgsz=160 verbose=0.26 - name: Push Image - if: github.event_name == 'push' || github.event.inputs.push == true + if: github.event_name == 'push' || (github.event.inputs.dockerfile == matrix.dockerfile && github.event.inputs.push == true) run: | docker push ultralytics/ultralytics:${{ matrix.tags }} diff --git a/ultralytics/engine/exporter.py b/ultralytics/engine/exporter.py index 10aecaf..31be6f2 100644 --- a/ultralytics/engine/exporter.py +++ b/ultralytics/engine/exporter.py @@ -116,7 +116,7 @@ def try_export(inner_func): return f, model except Exception as e: LOGGER.info(f'{prefix} export failure ❌ {dt.t:.1f}s: {e}') - return None, None + raise e return outer_func