Skip to content

feat: migrate Poetry to uv + fix SonarQube bugs and code smells #73

feat: migrate Poetry to uv + fix SonarQube bugs and code smells

feat: migrate Poetry to uv + fix SonarQube bugs and code smells #73

Workflow file for this run

name: CI - Prospectio API MCP
on:
pull_request:
branches: [ main ]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
run: pip install uv
- name: Cache .venv
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('uv.lock') }}
restore-keys: |
venv-${{ runner.os }}-
- name: Install dependencies
run: uv sync --dev
- name: Copy env file
run: cp .env.example .env
- name: Run tests with coverage
run: uv run pytest --cov-report=html
- name: Trivy FS report
uses: aquasecurity/trivy-action@master
with:
scan-type: fs
scan-ref: .
severity: CRITICAL,HIGH,MEDIUM
exit-code: "0"
trivy-config: trivy.yaml
- name: Trivy FS gate
uses: aquasecurity/trivy-action@master
with:
scan-type: fs
scan-ref: .
severity: CRITICAL
exit-code: "1"
trivy-config: trivy.yaml
- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: htmlcov/
retention-days: 7
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@v5
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
with:
args: >
-Dsonar.qualitygate.wait=false