Release 0.3.0 #351
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 workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Python Package | |
on: [ push, pull_request ] | |
jobs: | |
build-sdist: | |
name: Build SDist | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/[email protected] | |
with: | |
python-version: '3.13' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install flake8 | |
python -m pip install setuptools twine build | |
- name: Lint with flake8 | |
run: | | |
# stop the build if there are Python syntax errors or undefined names | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
- name: Build SDist | |
run: python -m build --sdist | |
- name: Check metadata | |
run: python -m twine check dist/* | |
- name: Upload SDist | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-sdist | |
path: dist/*.tar.gz | |
compression-level: 0 # already compressed | |
build-wheels: | |
name: Build Wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# macos-13 is an intel runner, macos-14 is apple silicon | |
os: [ ubuntu-22.04, windows-latest, macos-13, macos-14 ] | |
linux_arch: [ 'x86_64' ] #[suffix, mac, windows, linux] arch names | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install libomp | |
if: runner.os == 'macOS' | |
# openMP isnt part of core apple clang for some reason? | |
# libomp is in homebrew, which works for end users but its not a fat binary | |
# so we have to install it manually | |
# compiled dylibs courtesy of https://mac.r-project.org/openmp/ and mirrored on my own server | |
run: | | |
wget https://mac.r-project.org/openmp/openmp-13.0.0-darwin21-Release.tar.gz || wget https://pileof.rocks/openmp-13.0.0-darwin21-Release.tar.gz | |
sudo tar fvxz openmp-*.tar.gz -C / | |
- name: Install QEMU | |
# install QEMU if building for linux | |
uses: docker/setup-qemu-action@v2 | |
if: runner.os == 'linux' | |
with: | |
platforms: arm64 | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
MACOSX_DEPLOYMENT_TARGET: "12" | |
- name: Upload Wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-${{ matrix.os }} | |
path: ./wheelhouse/*.whl | |
compression-level: 0 # already compressed | |
publish-pypi: | |
name: Deploy to PyPI | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
needs: [ build-wheels, build-sdist ] | |
runs-on: ubuntu-22.04 | |
environment: | |
name: Publish | |
url: https://pypi.org/project/quicktex/${{ github.ref_name }} | |
permissions: | |
id-token: write | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
pattern: wheel* | |
path: dist | |
- name: Publish to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
publish-github: | |
name: Deploy to Github | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
needs: [ build-wheels, build-sdist ] | |
runs-on: ubuntu-22.04 | |
environment: | |
name: Publish | |
url: https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }} | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
pattern: wheel* | |
path: dist | |
- name: List artifacts | |
run: ls -l dist | |
- name: Get Changelog Information | |
id: yaclog-show | |
uses: drewcassidy/[email protected] | |
- name: Publish to Github | |
run: > | |
gh release create ${{ github.ref_name }} | |
--notes-file "${{ steps.yaclog-show.outputs.body-file }}" | |
--title "${{ steps.yaclog-show.outputs.name }}" | |
dist/* | |
env: | |
GH_TOKEN: ${{ github.token }} |