Repository navigation
python-sat: Add version 1.9.dev15 #1
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/pysathq/pysat/blob/master/.github/workflows/build.yml | |
| # and the test job of | |
| # https://github.com/pysathq/pysat/blob/master/.github/workflows/test.yml | |
| name: Build python-sat wheels (riscv64) | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version glob to (re)build; empty builds every version of docs/packages/python-sat.yaml not released yet' | |
| required: false | |
| default: '' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-python-sat.yml' | |
| - 'docs/packages/python-sat.yaml' | |
| - 'patches/python-sat/**' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/build-python-sat.yml' | |
| - 'docs/packages/python-sat.yaml' | |
| - 'patches/python-sat/**' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read # to fetch code (actions/checkout) | |
| env: | |
| # Upstream pushes no git tag for its releases; this commit sets | |
| # VERSION = (1, 9, 'dev', 15) and its tree is byte-identical to the released | |
| # sdist. Move it together with the version in docs/packages/python-sat.yaml. | |
| PYTHON_SAT_REF: 152884a6d1889f56a61049aaa773be23f0a8d8c1 | |
| MANYLINUX_RISCV64_IMAGE: quay.io/pypa/manylinux_2_39_riscv64 | |
| MUSLLINUX_RISCV64_IMAGE: quay.io/pypa/musllinux_1_2_riscv64 | |
| jobs: | |
| setup: | |
| uses: $/.github/workflows/_setup.yml | |
| with: | |
| package: python-sat | |
| version: ${{ inputs.version }} | |
| build_wheels: | |
| needs: [setup] | |
| if: needs.setup.outputs.versions != '[]' | |
| name: Build python-sat ${{ matrix.version }} ${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| runs-on: ubuntu-24.04-riscv | |
| timeout-minutes: 150 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| version: ${{ fromJSON(needs.setup.outputs.versions) }} | |
| python: ["cp312", "cp313", "cp314", "cp314t"] | |
| libc: [manylinux, musllinux] | |
| env: | |
| PYTHON_SAT_VERSION: ${{ matrix.version }} | |
| steps: | |
| - name: Checkout pysat ${{ env.PYTHON_SAT_REF }} | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| repository: pysathq/pysat | |
| ref: ${{ env.PYTHON_SAT_REF }} | |
| persist-credentials: false | |
| - name: Checkout python-wheels | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| path: python-wheels | |
| persist-credentials: false | |
| - name: Patch pysat source | |
| run: git apply python-wheels/patches/python-sat/${{ env.PYTHON_SAT_VERSION }}/*.patch | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0 | |
| env: | |
| CIBW_ARCHS: riscv64 | |
| CIBW_BUILD: ${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} | |
| CIBW_MUSLLINUX_RISCV64_IMAGE: ${{ env.MUSLLINUX_RISCV64_IMAGE }} | |
| CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ | |
| CIBW_BEFORE_TEST: pip install -r {project}/requirements.txt | |
| CIBW_TEST_REQUIRES: pytest | |
| CIBW_TEST_SOURCES: tests | |
| CIBW_TEST_COMMAND: >- | |
| python -c "import importlib.metadata as m, pysolvers; | |
| l = [p.name for p in m.files('python-sat') if '.dist-info/licenses/' in str(p)]; | |
| assert len(l) == 20 and not hasattr(pysolvers, 'lingeling_new'), l" | |
| && python -m pytest tests | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: python-sat-${{ env.PYTHON_SAT_VERSION }}-${{ matrix.python }}-${{ matrix.libc }}_riscv64 | |
| path: wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| name: Publish python-sat ${{ 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 | |
| secrets: | |
| app-private-key: ${{ secrets.RISEPROJECT_APP_PRIVATE_KEY }} | |
| with: | |
| artifact-pattern: python-sat-${{ matrix.version }}-*riscv64 |