mirror of
https://github.com/glomatico/gamdl.git
synced 2026-08-03 13:27:13 +03:00
129 lines
3.6 KiB
YAML
129 lines
3.6 KiB
YAML
# This workflow will upload a Python Package to PyPI when a release is created
|
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
|
|
|
# This workflow uses actions that are not certified by GitHub.
|
|
# They are provided by a third-party and are governed by
|
|
# separate terms of service, privacy policy, and support
|
|
# documentation.
|
|
|
|
name: Upload Python Package
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-sdist:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.10"
|
|
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Build source distribution
|
|
run: |
|
|
python -m pip install maturin
|
|
maturin sdist --out dist
|
|
|
|
- name: Upload source distribution
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-sdist
|
|
path: dist/
|
|
|
|
build-wheels:
|
|
name: Build wheel (${{ matrix.name }})
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- name: linux-x86_64
|
|
os: ubuntu-latest
|
|
python-version: "3.10"
|
|
args: ""
|
|
- name: linux-aarch64
|
|
os: ubuntu-24.04-arm
|
|
python-version: "3.10"
|
|
args: ""
|
|
- name: windows-x86_64
|
|
os: windows-latest
|
|
python-version: "3.10"
|
|
args: ""
|
|
- name: windows-arm64
|
|
os: windows-11-arm
|
|
python-version: "3.12"
|
|
args: ""
|
|
- name: macos-universal2
|
|
os: macos-latest
|
|
python-version: "3.10"
|
|
args: "--target universal2-apple-darwin"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Install macOS universal2 Rust target
|
|
if: matrix.name == 'macos-universal2'
|
|
run: rustup target add x86_64-apple-darwin
|
|
|
|
- name: Build wheel
|
|
run: |
|
|
python -m pip install maturin
|
|
maturin build --release --out dist ${{ matrix.args }}
|
|
|
|
- name: Upload wheel
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: dist-${{ matrix.name }}
|
|
path: dist/
|
|
|
|
pypi-publish:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- build-sdist
|
|
- build-wheels
|
|
permissions:
|
|
# IMPORTANT: this permission is mandatory for trusted publishing
|
|
id-token: write
|
|
|
|
# Dedicated environments with protections for publishing are strongly recommended.
|
|
# For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
|
|
environment:
|
|
name: pypi
|
|
# OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
|
|
# url: https://pypi.org/p/YOURPROJECT
|
|
#
|
|
# ALTERNATIVE: if your GitHub Release name is the PyPI project version string
|
|
# ALTERNATIVE: exactly, uncomment the following line instead:
|
|
# url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
|
|
|
|
steps:
|
|
- name: Retrieve release distributions
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
pattern: dist-*
|
|
path: dist/
|
|
merge-multiple: true
|
|
|
|
- name: Publish release distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
with:
|
|
packages-dir: dist/
|
|
skip-existing: true
|