Skip to content

ci: fix GitHub Actions pipeline #6

ci: fix GitHub Actions pipeline

ci: fix GitHub Actions pipeline #6

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- run: uv sync
- name: Lint
run: |
uv run ruff check src/
uv run ruff format --check src/
security:
runs-on: ubuntu-latest
needs: lint
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- run: uv sync
- name: Bandit security scan
run: uv run bandit -r src/ -ll
- name: Dependency audit
run: uv run pip-audit
tests:
runs-on: ubuntu-latest
needs: security
env:
HYPOTHESIS_PROFILE: ci
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- run: uv sync
- name: Unit tests with coverage
run: >
uv run pytest tests/ -v
-m "not integration"
-p randomly
--cov=src/rag_engine
--cov-report=term-missing
--cov-report=xml:coverage.xml
--cov-branch
--cov-fail-under=85
- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: coverage.xml
integration:
runs-on: ubuntu-latest
needs: tests
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- run: uv sync
- name: Integration tests
run: uv run pytest tests/integration/ -v
quality:
runs-on: ubuntu-latest
needs: tests
env:
HYPOTHESIS_PROFILE: ci
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- run: uv sync
- name: Property-based tests
run: uv run pytest tests/unit/test_property.py -v --hypothesis-seed=0