update primer3 source ABOUT.txt to reflect current version #16
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
name: Build Cross platform / architecture wheels and upload to PyPi | |
# See https://github.com/pypa/cibuildwheel for details | |
on: | |
push: | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" | |
- "v[0-9]+.[0-9]+.[0-9]+a[0-9]+" | |
- "v[0-9]+.[0-9]+.[0-9]+b[0-9]+" | |
- "test[0-9]+.[0-9]+.[0-9]+" | |
- "test[0-9]+.[0-9]+.[0-9]+a[0-9]+" | |
- "test[0-9]+.[0-9]+.[0-9]+b[0-9]+" | |
# Trigger on request. | |
workflow_dispatch: | |
jobs: | |
build_wheels: | |
name: Build wheel for ${{ matrix.os }}, Python ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, macos-latest, windows-2022] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
# NOTE: Use QEMU block to build Linux aarch64 builds. Its SUPER SLOW | |
# so it is commented out and left as a reference | |
# see https://cibuildwheel.readthedocs.io/en/stable/faq/#emulation | |
# - name: Set up QEMU | |
# if: runner.os == 'Linux' | |
# uses: docker/setup-qemu-action@v2 | |
# with: | |
# platforms: 'arm64' | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_PROJECT_REQUIRES_PYTHON: "==${{ matrix.python-version }}.*" | |
# Skip musl linux and PyPy versions | |
CIBW_SKIP: "{*-musllinux_*,pp*}" | |
# Build only on 64-bit architectures. | |
CIBW_ARCHS_MACOS: "${{ matrix.python-version > 3.8 && 'x86_64 arm64' || 'x86_64' }}" | |
# NOTE: Commented out to be used with QEMU block above | |
# CIBW_ARCHS_LINUX: "x86_64 aarch64" | |
CIBW_ARCHS_LINUX: "auto64" | |
CIBW_ARCHS_WINDOWS: "auto64" | |
# Configure environment variables. | |
MACOSX_DEPLOYMENT_TARGET: "10.14" | |
CIBW_BEFORE_BUILD: 'python3 -m pip install cython pytest "setuptools>=67.1.0" && python3 setup.py build_ext --inplace' | |
# Test the wheels. | |
CIBW_TEST_COMMAND_MACOS: "pytest {project}/tests/test_thermoanalysis.py -v" | |
CIBW_TEST_COMMAND_LINUX: "pytest {project}/tests/test_thermoanalysis.py -v" | |
CIBW_TEST_COMMAND_WINDOWS: "pytest {project}\\tests\\test_thermoanalysis.py" | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: ./wheelhouse/*.whl | |
build_sdist: | |
name: Build source distribution | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
name: Install Python | |
with: | |
python-version: '3.10' | |
- name: Install wheel | |
run: python3 -m pip install wheel | |
- name: Build sdist | |
run: python3 setup.py sdist --formats=gztar | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: dist/*.tar.gz | |
upload_pypi: | |
name: Upload wheels and sdist tar.gz to PyPI | |
needs: [build_wheels, build_sdist] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: dist | |
- name: Check files | |
run: ls -lR dist | |
- name: Upload to PyPI | |
# upload to PyPI on every tag starting with 'v' | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: pypa/[email protected] | |
with: | |
user: __token__ | |
password: ${{ secrets.PRIMER3_PYPI_API_TOKEN }} | |
- name: Upload to TestPyPI | |
# upload to TestPyPI PyPI on every tag starting with 'test' | |
if: startsWith(github.ref, 'refs/tags/test') | |
uses: pypa/[email protected] | |
with: | |
user: __token__ | |
password: ${{ secrets.PRIMER3_TEST_PYPI_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
skip_existing: true |