Skip to content

End-to-End test support. #221

End-to-End test support.

End-to-End test support. #221

Workflow file for this run

name: CI
on:
pull_request:
branches: [ dev, main ]
paths:
- 'depthai_nodes/**'
- 'tests/**'
- 'examples/**'
- 'docs/**'
- .github/workflows/ci.yaml
permissions:
pull-requests: write
contents: write
checks: write
jobs:
assigner:
runs-on: ubuntu-latest
steps:
- name: Auto-assign
uses: toshimaru/[email protected]
labeler:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Labeler
uses: actions/labeler@v5
with:
configuration-path: .github/labeler.yaml
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:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Install dependencies
run: |
pip install pydoctor
curl -L "https://raw.githubusercontent.com/luxonis/python-api-analyzer-to-json/main/gen-docs.py" -o "gen-docs.py"
- name: Build docs
run: |
python gen-docs.py depthai_nodes
tests:
needs:
- pre-commit
- docs
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.8', '3.10']
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
- name: Install depthai
run: pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-release-local/ depthai==3.0.0a5
- name: Install package
run: pip install -e .[dev]
- name: Run pytest
uses: pavelzw/pytest-action@v2
with:
emoji: false
custom-arguments: --cov depthai_nodes --cov-report xml --junit-xml pytest.xml
- name: Create Test Report
uses: EnricoMi/publish-unit-test-result-action@v2
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'
with:
files: pytest.xml
- name: Generate coverage badge
uses: tj-actions/coverage-badge-py@v2
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'
with:
output: media/coverage_badge.svg
- name: Generate coverage report
uses: orgoro/[email protected]
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'
with:
coverageFile: coverage.xml
token: ${{ secrets.GITHUB_TOKEN }}
- name: Commit coverage badge
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'
run: |
git config --global user.name 'GitHub Actions'
git config --global user.email '[email protected]'
git add media/coverage_badge.svg
git diff --quiet --cached media/coverage_badge.svg || {
git commit -m "[Automated] Updated coverage badge"
}
- name: Push changes
uses: ad-m/github-push-action@master
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'
with:
branch: ${{ github.head_ref }}