Check version; fail if pre-2024.2 #488
Workflow file for this run
This file contains 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: CI | |
permissions: read-all | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# Build and test the bindings using an existing OpenVINO installation. | |
test: | |
name: Build and test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# TODO: macos-latest cannot yet be included in the list because a dependency cannot be | |
# found ("dyld: Library not loaded; '@rpath/libopenvino.2310.dylib'"). See | |
# https://github.com/abrown/openvino-rs/actions/runs/6423141936/job/17441022932#step:7:154 | |
os: [ubuntu-20.04, ubuntu-22.04, windows-latest] | |
version: [2024.2.0, 2024.3.0, 2024.4.0] | |
apt: [false] | |
# We also spot-check that things work when installing from APT by adding to the matrix: see | |
# https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#expanding-or-adding-matrix-configurations | |
# APT install and check latest supported version. | |
include: | |
- os: ubuntu-22.04 | |
version: 2024.4.0 | |
apt: true | |
env: | |
RUST_LOG: debug | |
RUST_BACKTRACE: 1 | |
steps: | |
- name: Enable long paths | |
run: git config --global core.longpaths true | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: actions/[email protected] | |
with: | |
key: openvino-test-fixtures | |
path: | | |
crates/openvino/tests/fixtures/alexnet | |
crates/openvino/tests/fixtures/inception | |
crates/openvino/tests/fixtures/mobilenet | |
- uses: abrown/install-openvino-action@v8 | |
with: | |
version: ${{ matrix.version }} | |
apt: ${{ matrix.apt }} | |
- name: List files | |
run: find $OPENVINO_INSTALL_DIR | |
shell: bash | |
# First, check that we can find the OpenVINO libraries; this is a canary to find any library | |
# issues early (even if we duplicate some tests). If we run the tests in order, other tests will | |
# short-circuit the test run and logging may not be turned on (as it is in the "find a library" | |
# tests) for troubleshooting. | |
- name: Check openvino-finder | |
run: cargo test --package openvino-finder | |
# Now, run the dynamic-linking tests: this assumes the OpenVINO library is "findable" on the | |
# path and Cargo links the binary to it in the `build.rs` script. | |
- name: Check dynamic linking | |
run: cargo test | |
# Finally, run the runtime-linking tests: the binddings do not link at build time, instead | |
# as the tests are run. | |
- name: Check runtime linking | |
run: cargo test --features openvino-sys/runtime-linking | |
format: | |
name: Check code format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- run: rustup component add rustfmt | |
- run: cargo fmt --all -- --check | |
# Use the `runtime-linking` feature here to avoid requiring an OpenVINO installation to be | |
# present when building. | |
- run: cargo clippy --features runtime-linking | |
- run: cd crates/openvino-tensor-converter && cargo fmt --all -- --check | |
rust_dependencies: | |
name: Check Rust dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: EmbarkStudios/cargo-deny-action@v1 | |
docs: | |
name: Check documentation | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Build documentation | |
run: cargo doc --no-deps --features openvino-sys/runtime-linking | |
# Build and test the openvino-tensor-converter tool separately from the regular library builds; | |
# the OpenCV dependency is a bit fragile so the crate is not included by the default workspace | |
# commands. | |
converter: | |
name: Check converter tool | |
runs-on: ubuntu-20.04 | |
defaults: | |
run: | |
working-directory: crates/openvino-tensor-converter | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Install OpenCV | |
run: sudo apt update && sudo apt install libclang-dev libopencv-dev libopencv-core4.2 | |
- name: Build | |
run: cargo build -v | |
- name: test | |
run: cargo test -v | |
# Re-generate the openvino-sys bindings and check if anything has changed. A failure in this step | |
# indicates that we need to decide wether to commit the changes from `cargo xtask codegen`. | |
codegen: | |
name: Generate openvino-sys bindings | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- name: Generate bindings | |
run: cargo xtask codegen | |
- name: Verify no changes | |
run: git diff --ignore-submodules --no-ext-diff --exit-code |