Skip to content

Commit

Permalink
Replace Poetry with uv in CI
Browse files Browse the repository at this point in the history
  • Loading branch information
whitphx committed Oct 23, 2024
1 parent f80f8b7 commit 7d35c3e
Showing 1 changed file with 13 additions and 34 deletions.
47 changes: 13 additions & 34 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,53 +50,32 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

# The following steps are based on https://github.com/python-poetry/poetry/blob/def1ee8f3ae00c307ca028da53d2347615c5c32b/.github/workflows/main.yml#L51-L84
- name: Get full Python version
id: full-python-version
run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT

- name: Bootstrap poetry
run: |
curl -sL https://install.python-poetry.org | python - -y
- name: Update PATH
run: echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Configure poetry
run: poetry config virtualenvs.in-project true

- name: Set up cache
uses: actions/cache@v4
id: cache
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v3
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}

- name: Ensure cache is healthy
if: steps.cache.outputs.cache-hit == 'true'
run: timeout 10s pip --version || rm -rf .venv
version: "latest"
enable-cache: true

- name: Install a specific version of Streamlit
if: ${{ matrix.streamlit-version }}
run: |
poetry remove -D streamlit
poetry add -D streamlit=="${STREAMLIT_VERSION}"
uv pip uninstall streamlit
uv pip install streamlit=="${STREAMLIT_VERSION}"
env:
STREAMLIT_VERSION: ${{ matrix.streamlit-version }}
- name: Install dependencies
run: poetry install
run: uv sync
- name: Show Python and Streamlit versions
run: |
python -V
poetry run streamlit version
- name: Lint with black, isort, and flake8
uv run streamlit version
- name: Run Ruff
run: |
poetry run black . --check
poetry run isort . --check
poetry run flake8
uv run ruff check --output-format=github .
uv run ruff format . --check
- name: Type checking with mypy
run: |
poetry run mypy .
uv run mypy .
- name: Test with pytest
run: |
poetry run pytest
uv run pytest

0 comments on commit 7d35c3e

Please sign in to comment.