Skip to content

Predictions written in batches when save_dir is set instead of buffer in memory #1228

Predictions written in batches when save_dir is set instead of buffer in memory

Predictions written in batches when save_dir is set instead of buffer in memory #1228

Workflow file for this run

name: CI
on:
workflow_dispatch:
pull_request:
paths:
- "requirements.txt"
- "pyproject.toml"
- "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@v6
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/action@v3.0.1
docs:
needs:
- pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
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@v6
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v6
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@v6
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v6
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 pydantic-extra-types~=2.10
pip install -e . --no-deps
python -c 'from luxonis_train.config import Config; \
from pathlib import Path; \
[Config.get_config(p)
for p in Path("configs").rglob("*.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@v6
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v6
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 }}
HUBAI_API_KEY: ${{ secrets.HUBAI_API_KEY }}
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