Skip to content

Scale image canvas annotations #979

Scale image canvas annotations

Scale image canvas annotations #979

Workflow file for this run

name: CI
on:
pull_request:
paths:
- 'luxonis_train/**'
- 'tests/**'
- .github/workflows/ci.yaml
- '!**/*.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
pull-requests: write
contents: write
checks: write
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Install pre-commit
run: python -m pip install 'pre-commit<4.0.0'
- name: Run pre-commit
uses: pre-commit/[email protected]
docs:
needs:
- pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Install dependencies
run: pip install pydoctor
- name: Build docs
run: pydoctor --docformat=epytext luxonis_train
type-check:
needs:
- pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip
- name: Install dependencies
run: pip install -e .[dev]
- name: Install dev version of LuxonisML
if: startsWith(github.head_ref, 'release/') == false
run: |
pip uninstall luxonis-ml -y
pip install "luxonis-ml[data,tracker] @ git+https://github.com/luxonis/luxonis-ml.git@main"
- name: Pyright check
uses: jakebailey/pyright-action@v2
with:
level: warning
warnings: true
python-version: '3.10'
project: pyproject.toml
# Tests that the `luxonis-train.config.Config` works
# even when the dependencies of `luxonis-train` are
# not installed.
config-test:
runs-on: ubuntu-latest
needs:
- pre-commit
- type-check
- docs
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip
- name: Install released version of LuxonisML
if: startsWith(github.head_ref, 'release/') == true
run: pip install luxonis-ml[utils]
- name: Install dev version of LuxonisML
if: startsWith(github.head_ref, 'release/') == false
run: |
pip install "luxonis-ml[utils] @ git+https://github.com/luxonis/luxonis-ml.git@main"
- name: Test config without dependencies
run: |
pip install semver~=3.0
pip install -e . --no-deps
python -c 'from luxonis_train.config import Config; \
Config.get_config("configs/complex_model.yaml")'
tests:
needs:
- config-test
strategy:
matrix:
suite: [unit, predefined, combinations, misc]
runs-on: ${{ matrix.suite == 'unit' && 'ubuntu-latest' || 'ubuntu-t4-4core' }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip
- name: Install dependencies
run: pip install -e .[dev]
- name: Install dev version of LuxonisML
if: startsWith(github.head_ref, 'release/') == false
run: |
pip uninstall luxonis-ml -y
pip install "luxonis-ml[data,tracker] @ git+https://github.com/luxonis/luxonis-ml.git@main"
- name: Authenticate to Google Cloud
id: google-auth
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
create_credentials_file: true
export_environment_variables: true
token_format: access_token
- name: Run pytest
env:
LUXONISML_BUCKET: luxonis-test-bucket
SUITE: ${{ matrix.suite }}
run: pytest -x --cov --junitxml=junit.xml -o junit_family=legacy -m "${SUITE}"
- name: Upload test results to Codecov
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
flags: ${{ matrix.suite }}
- name: Upload coverage results to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
flags: ${{ matrix.suite }}
- name: Upload coverage as artifact
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.suite }}
path: coverage.xml
overwrite: true