🔖 Release v1.0.0 #21
Workflow file for this run
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
# This file is autogenerated by maturin v1.2.3 | |
# To update, run | |
# | |
# maturin generate-ci github | |
# | |
name: CI | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- '*' | |
workflow_dispatch: | |
pull_request: | |
permissions: | |
contents: read | |
concurrency: | |
group: ci-${{ github.ref_name }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- run: pip install pre-commit | |
name: Install pre-commit | |
- run: pre-commit run --all | |
name: Run pre-commit checks | |
test: | |
timeout-minutes: 20 | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest ] # windows-latest | |
python_version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.9', 'pypy-3.10'] | |
exclude: | |
# circumvent wierd issue with qh3.asyncio+windows+proactor loop... | |
- python_version: pypy-3.9 | |
os: windows-latest | |
- python_version: pypy-3.10 | |
os: windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Setup dependencies | |
run: pip install --upgrade pip pytest | |
- name: Set up Clang (Linux) | |
if: matrix.os == 'ubuntu-latest' | |
run: sudo apt-get install clang | |
- name: Set up Clang (Cygwin) | |
if: matrix.os == 'windows-latest' | |
run: | | |
choco install llvm -y | |
choco install nasm -y | |
- name: Build wheels (Unix, Linux) | |
if: matrix.os != 'windows-latest' | |
uses: PyO3/maturin-action@v1 | |
with: | |
args: --release --out dist --interpreter ${{ matrix.python_version }} | |
sccache: 'true' | |
manylinux: auto | |
before-script-linux: | | |
sudo apt-get update || echo "not ubuntu apt" | |
sudo apt-get install -y libclang-dev || echo "not ubuntu apt" | |
yum install -y llvm-toolset-7-clang || echo "not debian based" | |
source /opt/rh/llvm-toolset-7/enable || echo "not debian based" | |
- name: Build wheels (NT) | |
if: matrix.os == 'windows-latest' | |
uses: PyO3/[email protected] | |
with: | |
args: --release --out dist | |
sccache: 'true' | |
target: x64 | |
- run: pip install --find-links=./dist qh3 | |
name: Install built package | |
- name: Disable firewall and configure compiler | |
if: matrix.os == 'macos-latest' | |
run: | | |
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off | |
echo "AIOQUIC_SKIP_TESTS=chacha20" >> $GITHUB_ENV | |
- name: Ensure test target (NT) | |
if: matrix.os == 'windows-latest' | |
run: Remove-Item -Path qh3 -Force -Recurse | |
- name: Ensure test target (Linux, Unix) | |
if: matrix.os != 'windows-latest' | |
run: rm -fR qh3 | |
- run: python -m pip install -r dev-requirements.txt | |
name: Install dev requirements | |
- run: python -m unittest discover -v | |
name: Run tests | |
linux: | |
runs-on: ubuntu-latest | |
needs: | |
- test | |
- lint | |
strategy: | |
matrix: | |
target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] | |
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10'] | |
manylinux: ['auto', 'musllinux_1_1'] | |
# exclude: | |
# - manylinux: musllinux_1_1 | |
# target: ppc64le | |
# - manylinux: musllinux_1_1 | |
# target: s390x | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
args: --release --out dist --interpreter ${{ matrix.python_version }} | |
sccache: 'true' | |
manylinux: ${{ matrix.manylinux }} | |
before-script-linux: | | |
sudo apt-get update || echo "no apt support" | |
sudo apt-get install -y libclang-dev || echo "no apt support" | |
sudo apt-get install linux-headers-generic || echo "no apt support" | |
yum install -y llvm-toolset-7-clang || echo "not debian based" | |
source /opt/rh/llvm-toolset-7/enable || echo "not debian based" | |
apk add bsd-compat-headers || echo "not musllinux" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
windows: | |
needs: | |
- test | |
- lint | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
target: [x64,] | |
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
architecture: ${{ matrix.target }} | |
- name: Set up Clang (Cygwin) | |
if: matrix.os == 'windows-latest' | |
run: | | |
choco install llvm -y | |
choco install nasm -y | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
args: --release --out dist | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
macos: | |
needs: | |
- test | |
- lint | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
target: [x86_64, aarch64] | |
python_version: ['3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
args: --release --out dist --interpreter ${{ matrix.python_version }} | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
sdist: | |
needs: | |
- test | |
- lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build sdist | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: sdist | |
args: --out dist | |
- name: Upload sdist | |
uses: actions/upload-artifact@v3 | |
with: | |
name: wheels | |
path: dist | |
checksum: | |
name: Compute hashes | |
runs-on: ubuntu-latest | |
needs: [linux, windows, macos, sdist] | |
if: "startsWith(github.ref, 'refs/tags/')" | |
outputs: | |
hashes: ${{ steps.compute.outputs.hashes }} | |
steps: | |
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 | |
- name: Download distributions | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: wheels | |
path: dist | |
- name: Collected dists | |
run: | | |
tree dist | |
- name: Generate hashes | |
id: compute # needs.checksum.outputs.hashes | |
working-directory: ./dist | |
run: echo "hashes=$(sha256sum * | base64 -w0)" >> $GITHUB_OUTPUT | |
provenance: | |
needs: checksum | |
if: "startsWith(github.ref, 'refs/tags/')" | |
uses: slsa-framework/slsa-github-generator/.github/workflows/[email protected] | |
permissions: | |
actions: read | |
id-token: write | |
contents: write | |
with: | |
base64-subjects: ${{ needs.checksum.outputs.hashes }} | |
upload-assets: true | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
if: "startsWith(github.ref, 'refs/tags/')" | |
needs: provenance | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wheels | |
- name: Publish to PyPI | |
uses: PyO3/maturin-action@v1 | |
env: | |
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
with: | |
command: upload | |
args: --non-interactive --skip-existing * |