pygeohash: Add version 3.5.1 #10
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # SPDX-FileCopyrightText: 2026 The RISE Project | |
| # SPDX-License-Identifier: MIT | |
| --- | |
| # Based on the `build_wheels` job of | |
| # https://github.com/wdm0006/pygeohash/blob/v3.3.2/.github/workflows/publish-pypi.yml | |
| name: Build pygeohash wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/pygeohash.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-pygeohash.yml' | |
| - 'docs/packages/pygeohash.yaml' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-pygeohash.yml' | |
| - 'docs/packages/pygeohash.yaml' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| env: | |
| MANYLINUX_RISCV64_IMAGE: quay.io/pypa/manylinux_2_39_riscv64 | |
| jobs: | |
| setup: | |
| uses: $/.github/workflows/_setup.yml | |
| with: | |
| package: pygeohash | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build pygeohash ${{ matrix.version }} ${{ matrix.python }}-manylinux_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| python: ["cp312", "cp313", "cp314", "cp314t"] | |
| env: | |
| PYGEOHASH_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout pygeohash v${{ env.PYGEOHASH_VERSION }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: wdm0006/pygeohash | |
| ref: v${{ env.PYGEOHASH_VERSION }} | |
| persist-credentials: false | |
| - uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| env: | |
| CIBW_ARCHS: riscv64 | |
| CIBW_BUILD: ${{ matrix.python }}-manylinux_riscv64 | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| CIBW_BUILD_FRONTEND: build | |
| # matplotlib/pandas have no riscv64 wheel on public PyPI. | |
| CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ | |
| CIBW_TEST_EXTRAS: viz | |
| # `benchmark` extra's comparison libraries have no riscv64 wheel, but | |
| # test_benchmark_comparison.py drops each one that fails to import. | |
| CIBW_TEST_REQUIRES: pytest pytest-cov pytest-benchmark pandas | |
| # The repo-root pygeohash/ would otherwise shadow the installed wheel's | |
| # compiled extension; examples/ is needed too, since test_examples.py | |
| # imports it directly. | |
| CIBW_TEST_SOURCES: tests examples pyproject.toml | |
| CIBW_TEST_COMMAND: >- | |
| python -c "import pygeohash.cgeohash.geohash_module as m; assert m.__file__.endswith('.so'), m.__file__" && | |
| pytest tests | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: pygeohash-${{ env.PYGEOHASH_VERSION }}-${{ matrix.python }}-manylinux_riscv64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish pygeohash ${{ matrix.version }} | |
| needs: [setup, build_wheels] | |
| if: needs.setup.outputs.versions != '[]' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| uses: $/.github/workflows/_publish-wheel.yml | |
| with: | |
| artifact-pattern: pygeohash-${{ matrix.version }}-*-manylinux_riscv64 |