Skip to content

Bump furo from 2023.9.10 to 2024.1.29 #875

Bump furo from 2023.9.10 to 2024.1.29

Bump furo from 2023.9.10 to 2024.1.29 #875

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/**') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements/ci.txt
- name: Lint with ruff
run: |
ruff flask_limiter tests
- name: Lint with black
run: |
black tests flask_limiter
- name: Check imports
run: |
isort -c --profile=black limits tests
- name: Type checking
run: |
mypy flask_limiter
test:
runs-on: ubuntu-latest
name: Test (Python ${{ matrix.python-version }}, Flask ${{matrix.flask-version}})
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", "3.11", "3.12"]
flask-version: ["flask>=2.2,<2.3", "flask>=2.3,<2.4", "flask>=3.0,<3.1"]
steps:
- uses: actions/checkout@v3
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/**') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements/ci.txt
- name: Install Flask ${{ matrix.flask-version }}
run: |
pip uninstall -y flask werkzeug
pip install "${{ matrix.flask-version }}"
- name: Test
run: |
pytest --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
- name: Check Coverage
run: |
coverage report --fail-under=100 || (echo 'Insufficient coverage' && $(exit 1))
build_wheels:
needs: [lint]
name: Build wheel
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build wheels
run: |
python -m pip install build
python -m build --wheel
- uses: actions/upload-artifact@v2
with:
path: ./dist/*.whl
build_sdist:
needs: [lint]
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Build sdist
run: |
pipx run build --sdist
- uses: actions/upload-artifact@v2
with:
path: dist/*.tar.gz
upload_pypi:
needs: [test, build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@v1.4.2
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
skip_existing: true
upload_pypi_release:
needs: [test, build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- uses: pypa/gh-action-pypi-publish@v1.4.2
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
github_release:
needs: [upload_pypi_release]
name: Create Release
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: artifact
path: dist
- name: Generate release notes
run: |
./scripts/github_release_notes.sh > release_notes.md
- name: Create Release
uses: ncipollo/release-action@v1
with:
artifacts: "dist/*"
bodyFile: release_notes.md
token: ${{ secrets.GITHUB_TOKEN }}