diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..dd9d04f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,129 @@ +# This file is autogenerated by maturin v1.7.4 +# To update, run +# +# maturin generate-ci github --platform linux --platform macos +# +# manual edits: +# - to limit the number of ubuntu variants +# - do the rust build step +# - to add the RUSTFLAGS environment variable +# - to specify python version + +name: CI + +on: + push: + branches: + - main + - master + - paulan/new_builds + tags: + - '*' + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + linux: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + python-version: [3.9] + platform: + - runner: ubuntu-latest + target: x86_64 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Build bindings + run: | + tools/build.sh + - name: Build wheels + uses: PyO3/maturin-action@v1 + env: + RUSTFLAGS: -L espeak-ng/src/.libs + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + sccache: 'true' + manylinux: auto + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-linux-${{ matrix.platform.target }} + path: dist + +# macos: +# runs-on: ${{ matrix.platform.runner }} +# strategy: +# matrix: +# python-version: [3.9] +# platform: +# - runner: macos-12 +# target: x86_64 +# - runner: macos-14 +# target: aarch64 +# steps: +# - uses: actions/checkout@v4 +# - uses: actions/setup-python@v5 +# with: +# python-version: ${{ matrix.python-version }} +# - name: Build wheels +# uses: PyO3/maturin-action@v1 +# env: +# RUSTFLAGS: -L espeak-ng/src/.libs +# with: +# target: ${{ matrix.platform.target }} +# args: --release --out dist --find-interpreter +# sccache: 'true' +# - name: Upload wheels +# uses: actions/upload-artifact@v4 +# with: +# name: wheels-macos-${{ matrix.platform.target }} +# path: dist + +# sdist: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# - name: Build sdist +# uses: PyO3/maturin-action@v1 +# with: +# command: sdist +# args: --out dist +# - name: Upload sdist +# uses: actions/upload-artifact@v4 +# with: +# name: wheels-sdist +# path: dist + +# release: +# name: Release +# runs-on: ubuntu-latest +# if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} +# needs: [linux, macos, sdist] +# permissions: +# # Use to sign the release artifacts +# id-token: write +# # Used to upload release artifacts +# contents: write +# # Used to generate artifact attestation +# attestations: write +# steps: +# - uses: actions/download-artifact@v4 +# - name: Generate artifact attestation +# uses: actions/attest-build-provenance@v1 +# with: +# subject-path: 'wheels-*/*' +# - name: Publish to PyPI +# if: "startsWith(github.ref, 'refs/tags/')" +# uses: PyO3/maturin-action@v1 +# env: +# MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} +# with: +# command: upload +# args: --non-interactive --skip-existing wheels-*/* diff --git a/pyproject.toml b/pyproject.toml index f1c43e4..d316afe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["maturin>=0.10,<0.11"] +requires = ["maturin>=1,<2"] build-backend = "maturin" [project] diff --git a/tools/build.sh b/tools/build.sh index 9e31450..2efe8f7 100755 --- a/tools/build.sh +++ b/tools/build.sh @@ -3,12 +3,8 @@ set -e SCRIPT_DIR=$(cd $(dirname $0); pwd) PARENT_DIR=$(dirname $SCRIPT_DIR) - cd $PARENT_DIR/espeak-ng touch ChangeLog.md ./autogen.sh ./configure --without-klatt --without-speechplayer --without-mbrola --without-sonic --without-async make - -cd $PARENT_DIR -RUSTFLAGS='-L espeak-ng/src/.libs' maturin build --release