diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ee7373a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,39 @@ +name: CI Pipeline + +on: + push: + branches: [ "main", "dev", "fix/*", "feat/*", "docs/*" ] + pull_request: + branches: [ "main", "dev" ] + +jobs: + lint-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: "pip" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install ruff mypy pytest pytest-asyncio + pip install . + + - name: Run Ruff (linter) + run: | + ruff check src/ tests/ + + - name: Run Mypy (type check) + run: | + mypy src/ --strict + + - name: Run Pytest (unit tests) + run: | + pytest tests/unit/ -v