Skip to content

Main

Main #160

Workflow file for this run

name: Main
on:
push:
branches: [ main ]
tags:
- "v*.*.*"
pull_request:
branches: [ main ]
jobs:
linux:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
id: py3
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- name: Lint code
run: |
make pydep
make lint
- name: Build wheel
uses: messense/maturin-action@v1
with:
target: x86_64
manylinux: auto
command: build
args: --release --sdist -i python${{ matrix.python-version }} -o dist
- name: Install wheel
run: |
pip install hybrid_pke --no-index --find-links dist --force-reinstall
python -c "import hybrid_pke"
- name: Test wheel
run: make test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
windows:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
target: [x64, x86]
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
id: py3
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.target }}
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- name: Build wheel
uses: messense/maturin-action@v1
with:
command: build
target: ${{ matrix.target }}
args: --release -i ${{ steps.py3.outputs.python-path }} -o dist
- name: Install wheel
run: |
pip install hybrid_pke --no-index --find-links dist --force-reinstall
python -c "import hybrid_pke"
- name: Test wheel
run: |
make pydep
make test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
macos:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
runs-on: macos-13
steps:
- uses: actions/checkout@v3
- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
id: py3
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
default: true
- name: Build wheel - x86_64
uses: messense/maturin-action@v1
with:
command: build
target: x86_64
args: --release -i ${{ steps.py3.outputs.python-path }} --out dist --sdist
- name: Install wheel - x86_64
run: |
pip install hybrid_pke --no-index --find-links dist --force-reinstall
python -c "import hybrid_pke"
- name: Test wheel
run: |
make pydep
make test
- name: Build wheel - universal2
uses: messense/maturin-action@v1
with:
command: build
args: --release --universal2 -o dist
- name: Install wheel - universal2
run: |
pip install hybrid_pke --no-index --find-links dist --force-reinstall
python -c "import hybrid_pke"
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [ linux, macos, windows ]
steps:
- uses: actions/download-artifact@v2
id: download
with:
name: wheels
- name: Zip wheels into wheelhouse
run: zip -r wheelhouse.zip . -i *.whl
working-directory: ${{ steps.download.outputs.download-path }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
wheelhouse.zip
LICENSE
NOTICE
README.md
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
rm wheelhouse.zip
pip install --upgrade twine
twine upload --skip-existing *
working-directory: ${{ steps.download.outputs.download-path }}