Skip to content

Add libwayland-client0 to linux release process #11

Add libwayland-client0 to linux release process

Add libwayland-client0 to linux release process #11

Workflow file for this run

name: Release
on:
push:
tags: ['v*']
workflow_dispatch:
permissions:
contents: read
jobs:
generate-stubs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: Generate type stubs
run: |
cargo build --release -p processing_pyo3
cargo run --release -p generate_stubs
- uses: actions/upload-artifact@v4
with:
name: type-stubs
path: crates/processing_pyo3/mewnala/__init__.pyi
linux:
runs-on: ubuntu-22.04
needs: generate-stubs
strategy:
matrix:
target: [x86_64, aarch64]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- uses: actions/download-artifact@v4
with:
name: type-stubs
path: crates/processing_pyo3/mewnala
- name: Setup QEMU
if: matrix.target == 'aarch64'
uses: docker/setup-qemu-action@v3
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
manylinux: 2_28
before-script-linux: |
apt-get update && apt-get install -y cmake g++ \
libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev \
libwayland-client0 libwayland-dev libxkbcommon-dev
working-directory: crates/processing_pyo3
- uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: crates/processing_pyo3/dist
macos:
runs-on: ${{ matrix.runner }}
needs: generate-stubs
strategy:
matrix:
include:
- runner: macos-14
target: aarch64
- runner: macos-13
target: x86_64
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- uses: actions/download-artifact@v4
with:
name: type-stubs
path: crates/processing_pyo3/mewnala
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
working-directory: crates/processing_pyo3
- uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.target }}
path: crates/processing_pyo3/dist
windows:
runs-on: windows-latest
needs: generate-stubs
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- uses: actions/download-artifact@v4
with:
name: type-stubs
path: crates/processing_pyo3/mewnala
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: x64
args: --release --out dist --find-interpreter
working-directory: crates/processing_pyo3
- uses: actions/upload-artifact@v4
with:
name: wheels-windows-x64
path: crates/processing_pyo3/dist
sdist:
runs-on: ubuntu-latest
needs: generate-stubs
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/download-artifact@v4
with:
name: type-stubs
path: crates/processing_pyo3/mewnala
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
working-directory: crates/processing_pyo3
- uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: crates/processing_pyo3/dist
publish:
name: Publish to PyPI
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [linux, macos, windows, sdist]
permissions:
id-token: write
environment: pypi
steps:
- uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1