crackers-v0.6.0 #242
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
| # This file is autogenerated by maturin v1.8.3 | |
| # To update, run | |
| # | |
| # maturin generate-ci github | |
| # | |
| name: Wheels | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| release: | |
| types: [ published ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| linux: | |
| runs-on: ${{ matrix.platform.runner }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: ubuntu-22.04 | |
| target: x86_64 | |
| - runner: ubuntu-22.04 | |
| target: aarch64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Build wheels | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.platform.target }} | |
| args: --release --out dist --interpreter python3.10 python3.11 python3.12 python3.13 python3.13t pypy3.10 pypy3.11 --auditwheel skip | |
| working-directory: crackers_python | |
| manylinux: manylinux2_28 | |
| before-script-linux: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| uv venv | |
| source .venv/bin/activate | |
| python3 gh_actions_setup.py ${{ matrix.platform.target }} | |
| if [ -f .z3env ]; then | |
| # shellcheck disable=SC1091 | |
| . .z3env | |
| echo "✅ Loaded Z3_SYS_Z3_HEADER from .z3env" | |
| else | |
| echo "❌ .z3env not found. Please run the installer script first." | |
| fi | |
| export TARGET_SYSROOT=/usr/local/ | |
| # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-linux-${{ matrix.platform.target }} | |
| path: crackers_python/dist | |
| windows: | |
| runs-on: ${{ matrix.platform.runner }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: windows-latest | |
| target: x64 | |
| python: [ '3.11', '3.12', '3.13' ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Cache Python dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| C:\Users\runneradmin\AppData\Local\uv\cache | |
| C:\ProgramData\chocolatey\lib\z3 | |
| key: windows-uv-${{ matrix.python }}-${{ hashFiles('crackers_python/pyproject.toml') }} | |
| restore-keys: | | |
| windows-uv-${{ matrix.python }}- | |
| - name: Install Z3 using Chocolatey | |
| run: | | |
| choco install z3 | |
| - name: Set Z3 environment variables | |
| run: | | |
| # echo ::set-env name=Z3_SYS_Z3_HEADER::C:\ProgramData\chocolatey\lib\z3\tools\bin\include | |
| # echo ::set-env name=Z3_LIBRARY_PATH_OVERRIDE::C:\ProgramData\chocolatey\lib\z3\tools\bin | |
| - name: "Initialize python environment" | |
| run: | | |
| powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" | |
| $env:Path = "C:\Users\runneradmin\.local\bin;$env:Path" | |
| uv.exe venv --python ${{matrix.python}} | |
| . .venv\Scripts\Activate.ps1 | |
| uv.exe sync --no-install-project --project crackers_python --active | |
| $env:Z3_SYS_Z3_HEADER = "$(python crackers_python/find_venv_library_path.py)\z3\include\z3.h" | |
| $env:Z3_LIBRARY_PATH_OVERRIDE = "C:\ProgramData\chocolatey\lib\z3\tools\bin\bin" | |
| uv.exe build --project crackers_python --wheel --out-dir dist | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-windows-${{ matrix.platform.target }}-${{matrix.python}} | |
| path: dist | |
| macos: | |
| runs-on: ${{ matrix.platform.runner }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: macos-14 | |
| target: aarch64 | |
| python: [ '3.11', '3.12', '3.13' ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.x | |
| - name: "Initialize python environment" | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| uv venv --python ${{matrix.python}} | |
| source .venv/bin/activate | |
| uv sync --no-install-project --project crackers_python --active | |
| export Z3_SYS_Z3_HEADER=$(python crackers_python/find_venv_library_path.py)/z3/include/z3.h | |
| uv build --project crackers_python --wheel --out-dir dist | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-macos-${{ matrix.platform.target }}-$${{matrix.python}} | |
| path: dist/*.whl | |
| sdist: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: Build sdist | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| command: sdist | |
| args: --out dist | |
| working-directory: crackers_python | |
| - name: Upload sdist | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-sdist | |
| path: crackers_python/dist | |
| release: | |
| name: Release | |
| runs-on: ubuntu-latest | |
| if: ${{ (github.event_name == 'release' && startsWith(github.event.release.tag_name, 'crackers_python')) || github.event_name == 'workflow_dispatch' }} | |
| needs: [ linux, macos, sdist ] | |
| permissions: | |
| # Use to sign the release artifacts | |
| id-token: write | |
| # Used to upload release artifacts | |
| contents: write | |
| # Used to generate artifact attestation | |
| attestations: write | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@v2 | |
| with: | |
| subject-path: 'wheels-*/*' | |
| - name: Publish to PyPI | |
| uses: PyO3/maturin-action@v1 | |
| env: | |
| MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
| # MATURIN_REPOSITORY_URL: https://test.pypi.org/legacy/ | |
| with: | |
| command: upload | |
| args: --non-interactive --skip-existing wheels-*/* |