diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a00ba4b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,43 @@ +name: CI + +on: + push: + branches: [master, qwen2.5-coder] + pull_request: + branches: [master, qwen2.5-coder] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - 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 -e ".[dev]" + + - name: Run linter + run: python -m ruff check . + continue-on-error: true + + - name: Run tests with coverage + run: | + python -m pytest tests/ -v --tb=short --cov=src --cov-report=term-missing --cov-report=xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml + flags: unittests + name: ci-coverage + fail_ci_if_error: false + verbose: true diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..3f4c24a --- /dev/null +++ b/codecov.yml @@ -0,0 +1,11 @@ +comment: + layout: "reach,diff,flags,tree" + behavior: default + require_changes: false + require_base: no + require_head: yes + +# Optional: configure thresholds or ignore patterns below +# coverage: +# precision: 2 +# round: down \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 4778490..8bd2fa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ dependencies = [ [project.optional-dependencies] dev = [ "pytest>=7.0", + "pytest-cov>=4.0", "ruff>=0.1.0", "httpx>=0.24.0", ]