Spaces:
Runtime error
Runtime error
| name: treon | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - 'main' | |
| - 'latest' | |
| paths: | |
| - 'notebooks/**.ipynb' | |
| - 'notebooks/**.py' | |
| - 'requirements.txt' | |
| - '.ci/*' | |
| - '.github/workflows/*.yml' | |
| - '.github/workflows/.env' | |
| push: | |
| branches: | |
| - 'main' | |
| - 'latest' | |
| paths: | |
| - 'notebooks/**.ipynb' | |
| - 'notebooks/**.py' | |
| - 'requirements.txt' | |
| - '.ci/*' | |
| - '.github/workflows/*.yml' | |
| - '.github/workflows/.env' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| build_treon: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| os: [ubuntu-20.04, windows-2019, macos-12] | |
| python: ["3.10", "3.9", "3.8"] | |
| steps: | |
| #### Installation/preparation #### | |
| # | |
| # These steps are also copied to convert_notebooks.yml | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Get changed files | |
| id: changed-files | |
| uses: tj-actions/changed-files@v44 | |
| with: | |
| files: | | |
| notebooks/*/** | |
| requirements.txt | |
| - name: List all changed files | |
| run: | | |
| touch test_notebooks.txt | |
| changed_files="${{ steps.changed-files.outputs.all_changed_files }}" | |
| changed_files=$(echo $changed_files | tr '\\' '/') | |
| for file in $changed_files; do | |
| echo "$file was changed" | |
| echo $file >> test_notebooks.txt | |
| done | |
| shell: bash | |
| - name: Dotenv Action | |
| id: dotenv | |
| uses: xom9ikk/dotenv@v1.0.2 | |
| with: | |
| path: ./.github/workflows | |
| - name: Install required packages | |
| run: | | |
| if [ "$RUNNER_OS" == "Linux" ]; then | |
| sudo apt-get install libsndfile1 -y | |
| fi | |
| shell: bash | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Cache OpenVINO Pip Packages | |
| id: cachepip | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| pipcache | |
| key: ${{ env.PIP_CACHE_KEY }}-${{ matrix.os }}-${{ matrix.python }} | |
| # Cache specific files to reduce downloads or prevent network issues | |
| - name: Cache Files | |
| id: cachefiles | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| # NOTE: when modifying cache paths, update FILES_CACHE_KEY in .env | |
| # and change cache paths in both treon.yml and convert_notebooks.yml | |
| case_00030.zip | |
| notebooks/ct-segmentation-quantize/kits19_frames_1 | |
| notebooks/pytorch-post-training-quantization-nncf/output/tiny-imagenet-200.zip | |
| # omz cache location is set to this with test_replace | |
| notebooks/optical-character-recognition/open_model_zoo_cache | |
| notebooks/ct-scan-live-inference/kits19_frames_1 | |
| notebooks/pytorch-quantization-aware-training/data/tiny-imagenet-200.zip | |
| key: ${{ env.FILES_CACHE_KEY }} | |
| # PaddleGAN stores cache in ppgan directory in CACHE_DIR | |
| - name: Set CACHE_DIR | |
| shell: bash | |
| run: | | |
| python -c 'import os;print("CACHE_DIR={0}".format(os.path.expanduser(os.path.join("~", ".cache"))))' | |
| # replace backslashes with forward slashes for Windows paths | |
| python -c 'import os;print("CACHE_DIR={0}".format(os.path.expanduser(os.path.join("~", ".cache"))))' | sed -e 's/\\/\//g' >> $GITHUB_ENV | |
| # PaddleHub stores cache in directory pointed to by HUB_HOME environment variable | |
| - name: Set HUB_HOME | |
| shell: bash | |
| run: | | |
| echo HUB_HOME=${{ env.CACHE_DIR }}/.paddlehub >> $GITHUB_ENV | |
| # Cache PaddlePaddle cache directories to prevent CI failing due to network/download issues | |
| - name: Cache PaddlePaddle cache directories | |
| id: cacheusercache | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| ${{ env.HUB_HOME }} | |
| ${{ env.CACHE_DIR }}/paddle | |
| ${{ env.CACHE_DIR }}/ppgan | |
| key: ${{ env.USER_CACHE_KEY }}-${{ runner.os }} | |
| - name: Cache openvino packages | |
| if: steps.cachepip.outputs.cache-hit != 'true' | |
| run: | | |
| python -m pip install --upgrade pip | |
| mkdir pipcache | |
| python -m pip install --cache-dir pipcache --no-deps openvino openvino-dev nncf | |
| cp -r pipcache pipcache_openvino | |
| python -m pip uninstall -y openvino openvino-dev nncf | |
| # Download a small dataset to use for testing purposes in monai-kidney training notebook | |
| - name: Download CT files | |
| if: steps.cachefiles.outputs.cache-hit != 'true' | |
| run: | | |
| curl -O https://storage.openvinotoolkit.org/data/test_data/openvino_notebooks/kits19/case_00030.zip | |
| - name: Copy CT files | |
| run: | | |
| mkdir notebooks/ct-segmentation-quantize/kits19 | |
| mkdir notebooks/ct-segmentation-quantize/kits19/kits19_frames | |
| unzip case_00030.zip | |
| cp -r case_00030 case_00001 | |
| mv case_00030 notebooks/ct-segmentation-quantize/kits19/kits19_frames | |
| mv case_00001 notebooks/ct-segmentation-quantize/kits19/kits19_frames | |
| # Prevent test aborting by timeout | |
| - name: Download long loading models | |
| run: | | |
| mkdir notebooks/meter-reader/model | |
| curl -o notebooks/meter-reader/model/meter_det_model.tar.gz 'https://storage.openvinotoolkit.org/repositories/openvino_notebooks/models/meter-reader/meter_det_model.tar.gz' | |
| curl -o notebooks/meter-reader/model/meter_seg_model.tar.gz 'https://storage.openvinotoolkit.org/repositories/openvino_notebooks/models/meter-reader/meter_seg_model.tar.gz' | |
| mkdir notebooks/paddle-ocr-webcam/model | |
| curl -o notebooks/paddle-ocr-webcam/model/ch_PP-OCRv3_det_infer.tar 'https://storage.openvinotoolkit.org/repositories/openvino_notebooks/models/paddle-ocr/ch_PP-OCRv3_det_infer.tar' | |
| curl -o notebooks/paddle-ocr-webcam/model/ch_PP-OCRv3_rec_infer.tar 'https://storage.openvinotoolkit.org/repositories/openvino_notebooks/models/paddle-ocr/ch_PP-OCRv3_rec_infer.tar' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r .ci/dev-requirements.txt --cache-dir pipcache | |
| python -m ipykernel install --user --name openvino_env | |
| # Cache OpenVINO packages. mv works cross-platform | |
| - name: Make pipcache directory with OpenVINO packages | |
| if: steps.cachepip.outputs.cache-hit != 'true' | |
| run: | | |
| mv pipcache pipcache_full | |
| mv pipcache_openvino pipcache | |
| # Create list of installed pip packages that can be downloaded as artifacts | |
| # to verify the exact environment of a specific test run | |
| - name: Pip freeze | |
| run: | | |
| python -m pip freeze | |
| python -m pip freeze > pip-freeze-${{ github.sha }}-${{matrix.os}}-${{ matrix.python }}.txt | |
| - name: Archive pip freeze | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: pip-freeze-${{matrix.os}}-${{ matrix.python }} | |
| path: pip-freeze-${{ github.sha }}-${{matrix.os}}-${{ matrix.python }}.txt | |
| #### End installation/preparation | |
| - name: Check install | |
| run: | | |
| python check_install.py | |
| # Patch long running cells to run faster | |
| - name: Patch notebooks | |
| run: | | |
| python .ci/patch_notebooks.py . | |
| # Test that JupyterLab runs without errors | |
| - name: Test Jupyterlab | |
| run: | | |
| jupyter lab notebooks --help | |
| # Main notebooks test. Verifies that all notebooks run without errors | |
| - name: Analysing with treon (Windows) python > 3.8 | |
| if: runner.os == 'Windows' && matrix.python != '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_win.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} --move_notebooks_dir c:/notebooks | |
| shell: bash | |
| - name: Analysing with treon (Windows) python 3.8 | |
| if: runner.os == 'Windows' && matrix.python == '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_win.txt .ci/ignore_treon_py38.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} --move_notebooks_dir c:/notebooks | |
| shell: bash | |
| - name: Analysing with treon (Linux) python > 3.8 | |
| if: runner.os == 'Linux' && matrix.python != '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_linux.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} | |
| shell: bash | |
| - name: Analysing with treon (Linux) python 3.8 | |
| if: runner.os == 'Linux' && matrix.python == '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_linux.txt .ci/ignore_treon_py38.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} | |
| shell: bash | |
| - name: Analysing with treon (MacOS) python > 3.8 | |
| if: runner.os == 'MacOS' && matrix.python != '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_mac.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} | |
| shell: bash | |
| - name: Analysing with treon (MacOS) python 3.8 | |
| if: runner.os == 'MacOS' && matrix.python == '3.8' | |
| run: | | |
| python .ci/validate_notebooks.py --test_list test_notebooks.txt --ignore_list .ci/ignore_treon_mac.txt .ci/ignore_treon_py38.txt --report_dir test_report/${{matrix.os}}-${{ matrix.python }} | |
| shell: bash | |
| - name: Archive test report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test_report.csv-${{matrix.os}}-${{ matrix.python }} | |
| path: test_report.csv | |
| - name: Archive notebook test report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test_report-${{matrix.os}}-${{ matrix.python }} | |
| path: test_report/ | |
| # Show the cache after running the notebooks | |
| - name: Show cache | |
| run: | | |
| ls -laR ${{ env.CACHE_DIR }} | |
| du -sh ${{ env.CACHE_DIR }} | |
| if: runner.os != 'Windows' | |