Skip to content

Prepare Python port for publication #1

Prepare Python port for publication

Prepare Python port for publication #1

Workflow file for this run

name: CI
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
parity:
name: Python ${{ matrix.python-version }} parity
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
defaults:
run:
working-directory: distlink-python
steps:
- name: Check out Python port
uses: actions/checkout@v7
with:
path: distlink-python
- name: Check out pinned C++20 oracle
uses: actions/checkout@v7
with:
repository: troyrock/distlink-cpp
ref: 58c1c29ad1555920e004ff6fc8b932e954751147
path: distlink-cpp
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Run C++ oracle parity suite
run: python -m unittest discover -s tests -v
package:
name: Build and inspect distributions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.14"
- name: Install build tools
run: python -m pip install --upgrade build twine
- name: Build wheel and source distribution
run: python -m build
- name: Inspect package metadata
run: python -m twine check --strict dist/*
- name: Install and smoke-test the wheel
run: |
python -m pip install --force-reinstall dist/*.whl
cd "${RUNNER_TEMP}"
python -c "from distlink import COrbitData; print(COrbitData())"
- name: Preserve distribution artifacts
uses: actions/upload-artifact@v7
with:
name: python-package-distributions
path: dist/
if-no-files-found: error