Skip to content

Commit

Permalink
Merge branch 'master' into SimulateMultipartFile#1010
Browse files Browse the repository at this point in the history
  • Loading branch information
vytas7 authored Aug 30, 2024
2 parents 6ae4d06 + b5416c1 commit 6ede18d
Show file tree
Hide file tree
Showing 251 changed files with 8,303 additions and 4,918 deletions.
8 changes: 5 additions & 3 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ parallel = True

[report]
show_missing = True
exclude_lines =
# https://coverage.readthedocs.io/en/latest/excluding.html#advanced-exclusion
exclude_also =
if TYPE_CHECKING:
if not TYPE_CHECKING:
pragma: nocover
pragma: no cover
pragma: no py39,py310 cover
pragma: no py311 cover
@overload
class .*\bProtocol\):
216 changes: 216 additions & 0 deletions .github/workflows/cibuildwheel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
# Build wheels using cibuildwheel (https://cibuildwheel.pypa.io/)
name: build-wheels

on:
# Run when a release has been created
release:
types: [created]

# NOTE(vytas): Also allow to release to Test PyPi manually.
workflow_dispatch:

jobs:
build-sdist:
# NOTE(vytas): We actually build sdist and pure-Python wheel.
name: sdist
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Build sdist and pure-Python wheel
env:
FALCON_DISABLE_CYTHON: "Y"
run: |
pip install --upgrade pip
pip install --upgrade build
python -m build
- name: Check built artifacts
run: |
tools/check_dist.py ${{ github.event_name == 'release' && format('-r {0}', github.ref) || '' }}
- name: Test sdist
run: |
tools/test_dist.py dist/*.tar.gz
- name: Test pure-Python wheel
run: |
tools/test_dist.py dist/*.whl
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/falcon-*

build-wheels:
name: ${{ matrix.python }}-${{ matrix.platform.name }}
needs: build-sdist
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- name: manylinux_x86_64
os: ubuntu-latest
- name: musllinux_x86_64
os: ubuntu-latest
- name: manylinux_aarch64
os: ubuntu-latest
emulation: true
- name: musllinux_aarch64
os: ubuntu-latest
emulation: true
- name: manylinux_s390x
os: ubuntu-latest
emulation: true
- name: macosx_x86_64
os: macos-13
- name: macosx_arm64
os: macos-14
- name: win_amd64
os: windows-latest
python:
- cp39
- cp310
- cp311
- cp312
- cp313
include:
- platform:
name: manylinux_x86_64
os: ubuntu-latest
python: cp38
- platform:
name: musllinux_x86_64
os: ubuntu-latest
python: cp38

defaults:
run:
shell: bash

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
if: ${{ matrix.platform.emulation }}
with:
platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: all
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.platform.name }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cibw-wheel-${{ matrix.python }}-${{ matrix.platform.name }}
path: wheelhouse/falcon-*.whl

publish-sdist:
name: publish-sdist
needs:
- build-sdist
- build-wheels
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: cibw-sdist
path: dist
merge-multiple: true

- name: Check collected artifacts
run: |
tools/check_dist.py ${{ github.event_name == 'release' && format('-r {0}', github.ref) || '' }}
- name: Upload sdist to release
uses: AButler/[email protected]
if: github.event_name == 'release'
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
files: 'dist/*.tar.gz'

- name: Publish sdist and pure-Python wheel to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: github.event_name == 'workflow_dispatch'
with:
password: ${{ secrets.TEST_PYPI_TOKEN }}
repository-url: https://test.pypi.org/legacy/

- name: Publish sdist and pure-Python wheel to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: github.event_name == 'release'
with:
password: ${{ secrets.PYPI_TOKEN }}

publish-wheels:
name: publish-wheels
needs:
- build-sdist
- build-wheels
- publish-sdist
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: cibw-wheel-*
path: dist
merge-multiple: true

- name: Check collected artifacts
run: |
tools/check_dist.py ${{ github.event_name == 'release' && format('-r {0}', github.ref) || '' }}
- name: Publish binary wheels to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: github.event_name == 'workflow_dispatch'
with:
password: ${{ secrets.TEST_PYPI_TOKEN }}
repository-url: https://test.pypi.org/legacy/

- name: Publish binary wheels to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: github.event_name == 'release'
with:
password: ${{ secrets.PYPI_TOKEN }}
Loading

0 comments on commit 6ede18d

Please sign in to comment.