name: Python Bindings env: WORKING_DIRECTORY: bindings/python on: push: branches: - master tags-ignore: - '**' paths: - 'bindings/python/**' - 'core/**' - 'test-data/**' - '.github/workflows/python.yaml' pull_request: permissions: contents: read jobs: linux: runs-on: ubuntu-latest defaults: run: working-directory: ${{ env.WORKING_DIRECTORY }} strategy: matrix: # target: [x86_64, x86, aarch64, armv7, s390x, ppc64le] # target: [x86_64, aarch64] target: [x86_64] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Copy LICENSE run: cp ../../LICENSE . - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.target }} args: --release --out dist --find-interpreter -m bindings/python/Cargo.toml sccache: 'true' manylinux: auto # - name: Test Bindings # run: python index.py - name: Upload wheels uses: actions/upload-artifact@v3 with: name: wheels path: dist # windows: # runs-on: windows-latest # strategy: # matrix: # target: [x64, x86] # 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 -m bindings/python/Cargo.toml # sccache: 'true' # - name: Test Bindings # run: python index.py # - 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 -m bindings/python/Cargo.toml # sccache: 'true' # - name: Test Bindings # run: python index.py # - name: Upload wheels # uses: actions/upload-artifact@v3 # with: # name: wheels # path: dist # sdist: # runs-on: ubuntu-latest # defaults: # run: # working-directory: ${{ env.WORKING_DIRECTORY }} # steps: # - uses: actions/checkout@v3 # - name: Build sdist # uses: PyO3/maturin-action@v1 # with: # command: sdist # args: --out dist -m bindings/python/Cargo.toml # - name: Upload sdist # uses: actions/upload-artifact@v3 # with: # name: wheels # path: dist release: name: Release runs-on: ubuntu-latest defaults: run: working-directory: ${{ env.WORKING_DIRECTORY }} # if: "startsWith(github.ref, 'refs/tags/')" # needs: [linux, windows, macos, sdist] # needs: [linux, sdist] needs: [linux] steps: - uses: actions/download-artifact@v3 with: name: wheels - name: Publish to PyPI if: "startsWith(github.event.head_commit.message, 'chore(release): publish python')" uses: PyO3/maturin-action@v1 env: MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} with: command: upload args: --skip-existing *