From a5f8c92d32978a2dbf77bd3053d6e0ed0a1b869c Mon Sep 17 00:00:00 2001 From: Thomas Lutterbeck Date: Thu, 13 Jun 2024 10:16:39 +0200 Subject: [PATCH] added github workflow for publishing the package --- .github/workflows/publish_to_pypi.yml | 157 ++++++++++++++++++++++++++ .gitignore | 1 - 2 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish_to_pypi.yml diff --git a/.github/workflows/publish_to_pypi.yml b/.github/workflows/publish_to_pypi.yml new file mode 100644 index 0000000..231a178 --- /dev/null +++ b/.github/workflows/publish_to_pypi.yml @@ -0,0 +1,157 @@ +name: CI + +on: + push: + branches: + - main + - master + tags: + - '*' + pull_request: + workflow_dispatch: + +concurrency: + + group: ${{ github.workflow }}-${{ github.ref }} + + cancel-in-progress: true + +permissions: + contents: read + +# Make sure CI fails on all warnings, including Clippy lints +env: + RUSTFLAGS: "-Dwarnings" + +jobs: + linux_tests: + runs-on: ubuntu-latest + strategy: + matrix: + target: [x86_64] + python-version: ["3.8", "3.9", "3.10", "3.11"] + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + + python-version: ${{ matrix.python-version }} + + + - name: Set up Rust + run: rustup show + - uses: mozilla-actions/sccache-action@v0.0.3 + - run: make .venv + - run: make pre-commit + - run: make install + - run: make test + + linux: + runs-on: ubuntu-latest + strategy: + matrix: + target: [x86_64, x86] + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + + target: ${{ matrix.target }} + + args: --release --out dist --find-interpreter + sccache: 'true' + manylinux: auto + - name: Upload wheels + uses: actions/upload-artifact@v3 + with: + name: wheels + path: dist + + windows: + runs-on: windows-latest + strategy: + matrix: + target: [x64] + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + + architecture: ${{ matrix.target }} + + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + + target: ${{ matrix.target }} + + args: --release --out dist --find-interpreter + sccache: 'true' + - name: Upload wheels + uses: actions/upload-artifact@v3 + with: + name: wheels + path: dist + + macos: + runs-on: macos-latest + strategy: + matrix: + target: [x86_64, aarch64] + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + + target: ${{ matrix.target }} + + args: --release --out dist --find-interpreter + sccache: 'true' + - name: Upload wheels + uses: actions/upload-artifact@v3 + with: + name: wheels + path: dist + + sdist: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Build sdist + uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --out dist + - name: Upload sdist + uses: actions/upload-artifact@v3 + with: + name: wheels + path: dist + + release: + name: Release + if: "startsWith(github.ref, 'refs/tags/')" + needs: [linux, windows, macos, sdist] + runs-on: ubuntu-latest + environment: pypi + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + steps: + - uses: actions/download-artifact@v3 + with: + name: wheels + - name: Publish to PyPI + uses: PyO3/maturin-action@v1 + with: + command: upload + args: --non-interactive --skip-existing * + diff --git a/.gitignore b/.gitignore index db1f0e5..3718270 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ *.pyc target .env -.github .mypy_cache **/__pycache__ .pytest_cache