Replace Poetry with UV #3646
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache UV virtualenv | |
uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cache/uv | |
~/.uv | |
.venv | |
key: ${{ runner.os }}-uv-${{ hashFiles('**/requirements*.txt') }} | |
restore-keys: | | |
${{ runner.os }}-uv- | |
- name: Install UV | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
elif [ "$RUNNER_OS" == "macOS" ]; then | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
echo "$HOME/Library/Application Support/uv/bin" >> $GITHUB_PATH | |
else | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
echo "$HOME/.local/bin" >> $GITHUB_PATH | |
fi | |
- name: Create and activate venv | |
run: | | |
python -m venv .venv | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
. .venv/Scripts/activate | |
else | |
. .venv/bin/activate | |
fi | |
shell: bash | |
- name: Install dependencies | |
run: | | |
which uv | |
uv pip install -e ".[test-docs,anthropic,groq,cohere,mistralai,litellm,google-generativeai,vertexai,cerebras_cloud_sdk,fireworks-ai]" --system | |
uv pip install -r requirements-dev.txt --system | |
shell: bash | |
- name: Run tests | |
if: matrix.python-version != '3.11' | |
run: pytest tests/ -k 'not llm and not openai and not gemini and not anthropic and not cohere and not vertexai' && pytest tests/llm/test_cohere | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }} | |
- name: Generate coverage report | |
if: matrix.python-version == '3.11' | |
run: | | |
coverage run -m pytest tests/ -k "not docs and not anthropic and not gemini and not cohere and not vertexai and not fireworks" | |
coverage report | |
coverage html | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} |