167 lines
5.0 KiB
YAML
167 lines
5.0 KiB
YAML
name: Python API Checks
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- 'src/bindings/python/**'
|
|
- 'samples/python/**'
|
|
- '.github/workflows/py_checks.yml'
|
|
branches:
|
|
- 'master'
|
|
- 'releases/**'
|
|
pull_request:
|
|
paths:
|
|
- 'src/bindings/python/**'
|
|
- 'samples/python/**'
|
|
- '.github/workflows/py_checks.yml'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
linters:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Code checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.7'
|
|
|
|
- name: Install dependencies
|
|
run: python -m pip install -r src/bindings/python/requirements_test.txt
|
|
|
|
# samples code-style
|
|
- name: Run flake8 on samples
|
|
run: python -m flake8 ./ --config=setup.cfg
|
|
working-directory: samples/python
|
|
|
|
- name: Create code style diff for samples
|
|
if: failure()
|
|
run: |
|
|
python -m black -l 160 -S ./
|
|
git diff > samples_diff.diff
|
|
working-directory: samples/python
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: failure()
|
|
with:
|
|
name: samples_diff
|
|
path: samples_diff.diff
|
|
|
|
# IE Python API Flake code-style
|
|
- name: Run flake8 on IE Python API
|
|
run: python -m flake8 ./ --config=setup.cfg
|
|
working-directory: src/bindings/python/src/compatibility/openvino
|
|
|
|
- name: Create code style diff for IE Python API
|
|
if: failure()
|
|
run: |
|
|
python -m black -l 160 -S ./
|
|
git diff > ie_python_diff.diff
|
|
working-directory: src/bindings/python/src/compatibility/openvino
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: failure()
|
|
with:
|
|
name: ie_python_diff
|
|
path: ie_python_diff.diff
|
|
|
|
# nGraph Python API Flake code-style
|
|
- name: Run flake8 on nGraph Python API
|
|
run: python -m flake8 ./src/compatibility/ngraph --config=setup.cfg
|
|
working-directory: src/bindings/python
|
|
|
|
- name: Create code style diff for nGraph Python API
|
|
if: failure()
|
|
run: |
|
|
python -m black -l 160 -S ./
|
|
git diff > pyngraph_diff.diff
|
|
working-directory: src/bindings/python/src/compatibility/ngraph
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: failure()
|
|
with:
|
|
name: pyngraph_diff
|
|
path: pyngraph_diff.diff
|
|
|
|
# Python API 2.0 Flake code-style
|
|
- name: Run flake8 on Python API 2.0
|
|
run: python -m flake8 ./src/openvino --config=setup.cfg
|
|
working-directory: src/bindings/python
|
|
|
|
- name: Create code style diff for Python API 2.0
|
|
if: failure()
|
|
run: |
|
|
python -m black -l 160 -S ./
|
|
git diff > pyopenvino_diff.diff
|
|
working-directory: src/bindings/python/src/openvino
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: failure()
|
|
with:
|
|
name: pyopenvino_diff
|
|
path: pyopenvino_diff.diff
|
|
|
|
# wheel Flake code-style
|
|
- name: Run flake8 on wheel
|
|
run: python -m flake8 ./ --config=../setup.cfg
|
|
working-directory: src/bindings/python/wheel
|
|
|
|
- name: Create code style diff for wheel
|
|
if: failure()
|
|
run: |
|
|
python -m black -l 160 -S ./
|
|
git diff > wheel_diff.diff
|
|
working-directory: src/bindings/python/wheel
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: failure()
|
|
with:
|
|
name: wheel_diff
|
|
path: wheel_diff.diff
|
|
|
|
# Python API 2.0 tests Flake code-style
|
|
- name: Run flake8 on python tests
|
|
# ignore lack of docs in tests
|
|
run: python -m flake8 tests/ --config=setup.cfg
|
|
working-directory: src/bindings/python
|
|
|
|
# IE Python API mypy check
|
|
- name: Run mypy on IE Python API
|
|
run: python -m mypy ./ --config-file ./setup.cfg
|
|
working-directory: src/bindings/python/src/compatibility/openvino
|
|
|
|
# nGraph Python API mypy check
|
|
- name: Run mypy on nGraph Python API
|
|
run: python -m mypy ./src/compatibility/ngraph --config-file ./setup.cfg
|
|
working-directory: src/bindings/python
|
|
|
|
# Python API 2.0 mypy check
|
|
- name: Run mypy on Python API 2.0
|
|
run: python -m mypy ./src/openvino --config-file ./setup.cfg
|
|
working-directory: src/bindings/python
|
|
|
|
- name: Run Bandit
|
|
run: python -m bandit -r ./ -f screen
|
|
working-directory: src/bindings/python/src/compatibility/openvino
|
|
|
|
# layer_tests Flake code-style
|
|
- name: Run flake8 on python tests in openvino/tests/layer_tests
|
|
run: |
|
|
modified_files=$(git diff --name-only)
|
|
for file in $modified_files; do
|
|
if [[ $file == "openvino/tests/layer_tests/"* ]]; then
|
|
if [[ -f "$file" ]]; then
|
|
python -m flake8 "$file" --config= ./setup.cfg
|
|
fi
|
|
fi
|
|
done
|
|
|