Skip to content

🔖 Release v1.0.0 #48

🔖 Release v1.0.0

🔖 Release v1.0.0 #48

Workflow file for this run

# 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:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, ] # macos-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
# - uses: ilammy/setup-nasm@v1
# if: matrix.os == 'windows-latest'
# - 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 "no apt support"
# sudo apt-get upgrade -y || echo "no apt support"
# sudo apt-get install -y libclang libclang-dev || echo "no apt support"
# sudo apt-get install -y linux-headers-generic || echo "no apt support"
# sudo apt-get install -y libc6-dev || echo "no apt support"
# yum install -y llvm-toolset-7-clang || echo "not yum based"
# source /opt/rh/llvm-toolset-7/enable || echo "not yum 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:
fail-fast: false
matrix:
target: [ x86_64, s390x, aarch64, armv7l ]
python_version: [ '3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10' ]
manylinux: [ 'manylinux2014', 'musllinux_1_1' ]
exclude:
- 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
env:
CFLAGS_aarch64_unknown_linux_gnu: "-D__ARM_ARCH=8"
BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_gnu: "--no-size_t-is-usize"
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 libclang-dev || echo "no apt support"
sudo apt-get install -y linux-headers-generic || echo "no apt support"
sudo apt-get install -y gcc-multilib wget || echo "no apt support"
sudo wget https://git.alpinelinux.org/aports/plain/main/bsd-compat-headers/queue.h -O /usr/local/musl/bin/../aarch64-unknown-linux-musl/include/sys/queue.h || echo "compat fail"
sudo wget https://git.alpinelinux.org/aports/plain/main/bsd-compat-headers/queue.h -O /usr/local/musl/bin/../x86_64-unknown-linux-musl/include/sys/queue.h || echo "compat fail"
yum install -y llvm-toolset-7-clang || echo "not yum based"
source /opt/rh/llvm-toolset-7/enable || echo "not yum based"
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
windows:
needs:
#- test
- lint
runs-on: windows-latest
strategy:
fail-fast: false
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 }}
- uses: ilammy/setup-nasm@v1
- name: Set up Clang (Cygwin)
run: choco install llvm -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:
fail-fast: false
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: [windows, macos, linux, 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
compile-generator: true
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: provenance
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/[email protected]
with:
command: upload
args: --non-interactive --skip-existing *