Skip to content

Bump softprops/action-gh-release from 2 to 3 #337

Bump softprops/action-gh-release from 2 to 3

Bump softprops/action-gh-release from 2 to 3 #337

Workflow file for this run

name: Python Tests
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-dotnet@v5
- uses: astral-sh/setup-uv@v7
- name: Build
run: uv build
- name: Upload source distribution
uses: actions/upload-artifact@v7
with:
name: build-output
path: "dist/*"
if-no-files-found: error
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depths: 0
- uses: astral-sh/setup-uv@v7
- name: Install Ruff
run: uv tool install ruff
- name: Check format
run: ruff format --check
- name: Check lints
run: ruff check
test:
runs-on: ${{ matrix.os.instance }}
needs: build
strategy:
fail-fast: false
matrix:
os:
- category: windows
platform: x64
instance: windows-latest
suffix: -windows-x86_64-none
- category: windows
platform: x86
instance: windows-latest
suffix: -windows-x86-none
- category: ubuntu
platform: x64
instance: ubuntu-22.04
suffix: ""
- category: ubuntu
platform: arm64
instance: ubuntu-22.04-arm
suffix: ""
- category: macos
platform: x64
instance: macos-15
suffix: -macos-x86_64-none
- category: macos
platform: arm64
instance: macos-15
suffix: -macos-aarch64-none
python: ['3.14', '3.13', '3.12', '3.11', '3.10']
exclude:
# Broken ctypes find_library
- os:
category: macos
platform: arm64
python: '3.10'
- os:
category: macos
platform: arm64
python: '3.11'
- os:
category: macos
platform: arm64
python: '3.12'
# Fails to call mono methods
- os:
category: windows
platform: x86
python: '3.13'
steps:
- uses: actions/checkout@v6
- name: Install Mono
uses: ./.github/actions/install-mono
with:
arch: ${{ matrix.os.platform }}
- name: Setup .NET
# use most current version until architecture: support is released
uses: actions/setup-dotnet@main
with:
dotnet-version: '10.0'
architecture: ${{ matrix.os.platform }}
- name: Set up Python ${{ matrix.python }}
uses: astral-sh/setup-uv@v7
with:
python-version: cpython-${{ matrix.python }}${{ matrix.os.suffix }}
cache-python: true
activate-environment: true
enable-cache: true
- name: Install dependencies
run: |
uv pip install pytest
- name: Download wheel
uses: actions/download-artifact@v8
with:
name: build-output
path: dist/
- name: Install wheel
shell: bash
run: |
uv pip install dist/*.whl
- name: Test with pytest
run: |
pytest
deploy:
runs-on: ubuntu-latest
needs: [build, test]
steps:
- name: Download artifacts
uses: actions/download-artifact@v8
with:
name: build-output
path: dist/
- name: Deploy to Test PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: startsWith(github.ref, 'refs/head/main')
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
- name: Release
uses: softprops/action-gh-release@v3
if: startsWith(github.ref, 'refs/tags/v')
with:
files: dist/*
- name: Deploy to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
if: startsWith(github.ref, 'refs/tags/v')
with:
password: ${{ secrets.PYPI_API_TOKEN }}