Skip to content

Latest commit

 

History

History
42 lines (35 loc) · 7.07 KB

CIPipelines.md

File metadata and controls

42 lines (35 loc) · 7.07 KB

ONNX CI Pipelines

  • CI pipelines matrix:

      When it runs Config Test
    Linux-CI  Every PR 
    • Ubuntu-20.04
    • DEBUG=1 or 0
    • ONNX_USE_LITE_PROTO=OFF
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_BUILD_TESTS=1
    • ONNX_WERROR=ON
    • ONNX_ML=1 or 0
    • ONNX C++ tests
    • Style check (flake8, mypy, and clang-format)
    • Test doc generation
    • Test proto generation
    • Verify node test generation
    Windows-CI Every PR 
    • windows-2019
    • ONNX_USE_LITE_PROTO=ON
    • ONNX_USE_PROTOBUF_SHARED_LIBS=ON
    • ONNX_BUILD_TESTS=1
    • ONNX_WERROR=ON
    • ONNX_ML=1 or 0
    • Test building ONNX in conda environment
    • Test doc generation
    • Test proto generation
    • Verify node test generation
    Mac-CI  Every PR 
    • macOS-10.15
    • DEBUG=1
    • ONNX_USE_LITE_PROTO=ON or OFF
    • ONNX_ML=1 or 0
    • ONNX_BUILD_TESTS=1
    • ONNX_WERROR=ON
    • ONNX C++ tests
    • Test doc generation
    • Test proto generation
    • Verify node test generation
    Windows_No_Exception CI  Every PR 
    • vs2019-winlatest
    • ONNX_DISABLE_EXCEPTIONS=ON
    • ONNX_USE_LITE_PROTO=ON
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • ONNX_USE_MSVC_STATIC_RUNTIME=ON
    • ONNX_DISABLE_STATIC_REGISTRATION=ON or OFF
    • Only ONNX C++ tests
    • Test selective schema loading
    Lint / Optional Lint Every PR
      ubuntu-latest
    • Not required -- it shows lint warnings for suggestions in PR
    • misspell
    • shellcheck
    Lint / Enforce style Every PR
      ubuntu-latest
    • flake8
    • isort
    • black
    • mypy
    • clang-format
    • unix line endings
    • c++ namespace rules
    • Auto-generated files are up to date
    WindowsRelease
    • Main branch
    • Release branch
    • Weekly(1)
    • Latest Windows
    • x86 and x64
    • ONNX_USE_LITE_PROTO=ON
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • ONNX_USE_MSVC_STATIC_RUNTIME=OFF
    • Release Windows wheel
    • Release onnx-weekly package
    • Verify with different dependency versions - latest and min supported numpy version, latest and min supported protobuf version(2)
    • Verify ONNX with the latest ONNX Runtime PyPI package(3).
    LinuxRelease_aarch64
    • Main branch
    • Release branch
    • Weekly
     
    • Latest manylinux2014_aarch64
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • ONNX_USE_LITE_PROTO=ON
    • Release Linux aarch64 wheel
    • Release onnx-weekly package
    • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
    • Verify ONNX with the latest ONNX Runtime PyPI package
    LinuxRelease_x86_64
    • Main branch
    • Release branch
    • Weekly
    • Latest LinuxRelease_x86_64
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • ONNX_USE_LITE_PROTO=ON
    • Release Linux x86_64 wheel
    • Release onnx-weekly package
    • Test TEST_HUB=1(4)
    • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
    • Verify ONNX with the latest ONNX Runtime PyPI package.
    MacRelease
    • Main branch
    • Release branch
    • Weekly
    • macos-11
    • MACOSX_DEPLOYMENT_TARGET=10.12(5)
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • ONNX_USE_LITE_PROTO=ON
    • Release Mac wheel
    • Release onnx-weekly package
    • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
    • Verify ONNX with the latest ONNX Runtime PyPI package.
    • Test source distribution generation
    • Test build with source distribution
    • Release onnx-weekly source distribution
    Weekly CI with latest onnx.checker weekly(6)
    • macos-latest
    • MACOSX_DEPLOYMENT_TARGET=10.12
    • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
    • ONNX_ML=1
    • Test latest ONNX checker
    • Test latest ONNX shape inference
    • With all models from onnx/models(7)
    Reuse Every PR
    • Checks for Copyright and License header
    • More information could be found at: https://reuse.software/
    • If no license is to be added, or the checker does not recognize it, it must be configured under .reuse/dep5.
    Dependabot
    • Main branch
    • weekly
    • Create PRs for new dependency versions (will occur more often because p.ex. GitHub actions are pinned to commit hashes due to security best practices and not just to a version number).

Every PR

  • (1) When the release CIs will run:

    • After a PR has been merged into main/rel-* branch
    • Run weekly (Sunday midnight) and release Python wheel to onnx-weekly package on PyPI.
    • Any PR targeting rel-* branch
    • To manually run them, add a PR label "run release CIs" (only maintainers have permission).
  • (2) Minimum supported versions are listed here.

  • (3) Test ONNX Python wheel with onnxruntime.InferenceSession from latest ONNXRuntime. Please note that ONNX Runtime does not support Windows-x86 thus its verification is skipped.

  • (4) TEST_HUB=1 will test onnx.hub by using this API to download an ONNX model from onnx/models. This test is restricted to only 1 pipeline for saving quota usage.

  • (5) Although the build environment is macos-11, use MACOSX_DEPLOYMENT_TARGET=10.12 and -p macosx_10_12_x86_64 to force the wheel to support 10.12+.

  • (6):

    • The ONNX Model Zoo test will run weekly (Sunday midnight)
    • To manually trigger it, add a PR label "test ONNX Model Zoo" (only maintainers have permission). Please note that it will need a lot of bandwidth to download models through git-lfs API when loading models via onnx.hub so use it with caution.
  • (7) Some old deprecated models (opset-1) are skipped.