update: modify before-script to unset RUSTC_WRAPPER before fetching d… #12
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
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - "v*.*.*" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| linux: | |
| name: Linux ${{ matrix.target }} py3.10-3.14 | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu-22.04 | |
| target: x86_64 | |
| rust_target: x86_64-unknown-linux-gnu | |
| container: quay.io/pypa/manylinux_2_28_x86_64:latest | |
| v8_from_source: "1" | |
| extra_gn_args: v8_enable_temporal_support=false v8_monolithic_for_shared_library=true | |
| docker_options: >- | |
| -e V8_FROM_SOURCE=1 | |
| -e "EXTRA_GN_ARGS=v8_enable_temporal_support=false v8_monolithic_for_shared_library=true" | |
| - runner: ubuntu-24.04-arm | |
| target: aarch64 | |
| rust_target: aarch64-unknown-linux-gnu | |
| container: quay.io/pypa/manylinux_2_28_aarch64:latest | |
| v8_from_source: "0" | |
| extra_gn_args: "" | |
| docker_options: -e V8_FROM_SOURCE=0 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build wheel | |
| uses: PyO3/maturin-action@v1 | |
| env: | |
| # rusty_v8's prebuilt Linux archive uses a TLS model that cannot be | |
| # linked into a Python extension module on x86_64. Source builds | |
| # inject V8_TLS_USED_IN_LIBRARY through the v8 crate build script. | |
| # aarch64 uses the published rusty_v8 archive. | |
| V8_FROM_SOURCE: ${{ matrix.v8_from_source }} | |
| # The crates.io v8 archive does not include Chromium's | |
| # third_party/rust/chromium_crates_io/vendor tree needed by the | |
| # Temporal Rust dependency, so source builds avoid those GN targets. | |
| EXTRA_GN_ARGS: ${{ matrix.extra_gn_args }} | |
| # Source builds use Chromium clang under target/<triple>/release. | |
| # Bindgen also needs the separate Chromium libclang package there. | |
| LIBCLANG_PATH: ${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang/lib | |
| LD_LIBRARY_PATH: ${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang/lib | |
| with: | |
| target: ${{ matrix.target }} | |
| # Source-building V8 needs Chromium's `gn` binary, which requires | |
| # GLIBC_2.18+. manylinux2014 only has glibc 2.17, so use 2_28 here. | |
| manylinux: "2_28" | |
| container: ${{ matrix.container }} | |
| docker-options: ${{ matrix.docker_options }} -e LIBCLANG_PATH=${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang/lib -e LD_LIBRARY_PATH=${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang/lib | |
| before-script-linux: | | |
| if [ "${{ matrix.v8_from_source }}" = "1" ]; then | |
| env -u RUSTC_WRAPPER cargo fetch --locked | |
| V8_SRC="$(find /root/.cargo/registry/src -maxdepth 2 -type d -name 'v8-147.4.0' -print -quit)" | |
| CLANG_DIR="${{ github.workspace }}/target/${{ matrix.rust_target }}/release/clang" | |
| python3 "$V8_SRC/tools/clang/scripts/update.py" --output-dir "$CLANG_DIR" | |
| python3 "$V8_SRC/tools/clang/scripts/update.py" --output-dir "$CLANG_DIR" --package libclang | |
| test -n "$(find "$CLANG_DIR/lib" -name 'libclang.so*' -print -quit)" | |
| fi | |
| args: >- | |
| --release | |
| --out dist | |
| --interpreter python3.10 python3.11 python3.12 python3.13 python3.14 | |
| sccache: true | |
| - name: Upload wheel | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-linux-${{ matrix.target }} | |
| path: dist | |
| if-no-files-found: error | |
| windows: | |
| name: Windows ${{ matrix.target }} py${{ matrix.python.version }} | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: windows-latest | |
| target: x64 | |
| python: | |
| architecture: x64 | |
| version: "3.10" | |
| tag: cp310 | |
| - runner: windows-latest | |
| target: x64 | |
| python: | |
| architecture: x64 | |
| version: "3.11" | |
| tag: cp311 | |
| - runner: windows-latest | |
| target: x64 | |
| python: | |
| architecture: x64 | |
| version: "3.12" | |
| tag: cp312 | |
| - runner: windows-latest | |
| target: x64 | |
| python: | |
| architecture: x64 | |
| version: "3.13" | |
| tag: cp313 | |
| - runner: windows-latest | |
| target: x64 | |
| python: | |
| architecture: x64 | |
| version: "3.14" | |
| tag: cp314 | |
| - runner: windows-11-arm | |
| target: aarch64 | |
| python: | |
| architecture: arm64 | |
| version: "3.11" | |
| tag: cp311 | |
| - runner: windows-11-arm | |
| target: aarch64 | |
| python: | |
| architecture: arm64 | |
| version: "3.12" | |
| tag: cp312 | |
| - runner: windows-11-arm | |
| target: aarch64 | |
| python: | |
| architecture: arm64 | |
| version: "3.13" | |
| tag: cp313 | |
| - runner: windows-11-arm | |
| target: aarch64 | |
| python: | |
| architecture: arm64 | |
| version: "3.14" | |
| tag: cp314 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python.version }} | |
| architecture: ${{ matrix.python.architecture }} | |
| - name: Build wheel | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.target }} | |
| args: --release --out dist --interpreter python | |
| sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| - name: Upload wheel | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-windows-${{ matrix.target }}-${{ matrix.python.tag }} | |
| path: dist | |
| if-no-files-found: error | |
| macos: | |
| name: macOS ${{ matrix.platform.target }} py${{ matrix.python.version }} | |
| runs-on: ${{ matrix.platform.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - version: "3.10" | |
| tag: cp310 | |
| - version: "3.11" | |
| tag: cp311 | |
| - version: "3.12" | |
| tag: cp312 | |
| - version: "3.13" | |
| tag: cp313 | |
| - version: "3.14" | |
| tag: cp314 | |
| platform: | |
| - runner: macos-13 | |
| target: x86_64 | |
| - runner: macos-14 | |
| target: aarch64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python.version }} | |
| - name: Build wheel | |
| uses: PyO3/maturin-action@v1 | |
| with: | |
| target: ${{ matrix.platform.target }} | |
| args: --release --out dist --interpreter python | |
| sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} | |
| - name: Upload wheel | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: wheels-macos-${{ matrix.platform.target }}-${{ matrix.python.tag }} | |
| path: dist | |
| if-no-files-found: error | |
| sdist: | |
| name: Source distribution | |
| 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 | |
| with: | |
| name: sdist | |
| path: dist | |
| if-no-files-found: error | |
| publish: | |
| name: Publish to PyPI | |
| runs-on: ubuntu-latest | |
| if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
| needs: [linux, windows, macos, sdist] | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| merge-multiple: true | |
| - uses: astral-sh/setup-uv@v4 | |
| - name: Publish distributions | |
| run: uv publish dist/* |