diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index 83d344d22..de76cd8ca 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -162,3 +162,52 @@ jobs: name: landing-e2e-results path: features/landing/frontend-public/test-results/ retention-days: 7 + + # ============================================================================= + # Python Services + # ============================================================================= + + test-ml-service: + name: Test ML Service + runs-on: ubuntu-latest + needs: detect-changes + if: contains(needs.detect-changes.outputs.affected_features, 'conversation-assistant') + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install uv + run: curl -LsSf https://astral.sh/uv/install.sh | sh + + - name: Configure Forgejo PyPI registry + run: | + mkdir -p ~/.config/pip + cat > ~/.config/pip/pip.conf << EOF + [global] + extra-index-url = https://__token__:${{ secrets.FORGEJO_TOKEN }}@forge.nasty.sh/api/packages/lilith/pypi/simple/ + EOF + + - name: Install dependencies + working-directory: features/conversation-assistant/ml-service + run: | + ~/.local/bin/uv venv + ~/.local/bin/uv pip install -e ".[dev]" + + - name: Run tests + working-directory: features/conversation-assistant/ml-service + run: | + source .venv/bin/activate + python -m pytest tests/ -v --tb=short + + - name: Upload test results + uses: actions/upload-artifact@v4 + if: always() + with: + name: ml-service-test-results + path: features/conversation-assistant/ml-service/.pytest_cache/ + retention-days: 7