diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 056f9b1..efcae5c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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