diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f884711..40fb072 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -3,136 +3,72 @@ # # maturin generate-ci github # -name: CI +name: Build and Publish on: push: branches: - main - - master - tags: - - '*' pull_request: - workflow_dispatch: - -permissions: - contents: read + branches: + - main jobs: - linux: - runs-on: ${{ matrix.platform.runner }} + build: + runs-on: ${{ matrix.os }} strategy: matrix: - platform: - - runner: ubuntu-latest - target: x86_64 - - runner: ubuntu-latest - target: x86 - - runner: ubuntu-latest - target: aarch64 - - runner: ubuntu-latest - target: armv7 - - runner: ubuntu-latest - target: s390x - - runner: ubuntu-latest - target: ppc64le - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - name: Build wheels - uses: PyO3/maturin-action@v1 - 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 + os: [ubuntu-latest, macos-latest, windows-latest] - windows: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: windows-latest - target: x64 - - runner: windows-latest - target: x86 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - architecture: ${{ matrix.platform.target }} - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 with: - name: wheels-windows-${{ matrix.platform.target }} - path: dist + python-version: 3.9 # Use any version >=3.6 for the build - macos: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: macos-latest - target: x86_64 - - runner: macos-14 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - name: Install Rust + uses: actions-rs/toolchain@v1 with: - python-version: '3.10' + toolchain: stable + profile: minimal + override: true + + - name: Install maturin + run: pip install maturin + - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - sccache: 'true' - - name: Upload wheels - uses: actions/upload-artifact@v4 + run: maturin build --release --strip + + - name: Upload artifact + uses: actions/upload-artifact@v2 with: - name: wheels-macos-${{ matrix.platform.target }} - path: dist + name: wheels + path: target/wheels/*.whl - sdist: + publish: + needs: build 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 + - uses: actions/checkout@v2 + + - name: Download artifact + uses: actions/download-artifact@v2 with: - name: wheels-sdist + name: wheels path: dist - release: - name: Release - runs-on: ubuntu-latest - if: "startsWith(github.ref, 'refs/tags/')" - needs: [linux, windows, macos, sdist] - steps: - - uses: actions/download-artifact@v4 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.x + + - name: Install twine + run: pip install twine + - name: Publish to PyPI - uses: PyO3/maturin-action@v1 + run: twine upload dist/* env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} diff --git a/Cargo.toml b/Cargo.toml index 08957da..f86d980 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ crate-type = ["cdylib"] sha2 = "0.10.2" globset = "0.4" -pyo3 = { version = "0.21.2", features = ["extension-module"] } +pyo3 = { version = "0.21.2", features = ["extension-module", "abi3-py37"]} # core tantivy = { version = "0.21.0", features = ["mmap"] } @@ -101,6 +101,13 @@ serde = {version = "1.0.188", features = ["derive"]} serde_yaml = "0.9.25" blake3 = "1.5.0" +[build-system] +requires = ["maturin>=0.13"] +build-backend = "maturin" + +[tool.maturin] +bindings = "pyo3-abi3" + [package.metadata.maturin] name = "code_nav_devon" version = "0.1.0"