name: Linux - Unit Tests on: push: branches: [main, master, dev] pull_request: branches: [main, master, dev] jobs: linux-unit: name: Linux / Unit / ${{ matrix.python-version }} runs-on: ubuntu-latest strategy: matrix: python-version: ["3.10", "3.11", "3.12"] fail-fast: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | python -m pip install --upgrade pip pip install pytest pytest-cov pytest-mock pytest-asyncio pip install -r .github/requirements-ci.txt pip install -r requirements-dev.txt - name: Run unit tests run: | pytest tests/unit/ -v --cov=nodes --cov-report=xml --cov-report=term-missing env: PYTHONPATH: ${{ github.workspace }} - name: Upload coverage reports uses: codecov/codecov-action@v4 with: file: ./coverage.xml flags: unittests name: codecov-umbrella fail_ci_if_error: false - name: Test summary if: always() run: | echo "## Test Results (Python ${{ matrix.python-version }})" >> $GITHUB_STEP_SUMMARY echo "✅ Unit tests completed" >> $GITHUB_STEP_SUMMARY