diff --git a/.github/workflows/release-gem.yml b/.github/workflows/release-gem.yml index 4189067..8612386 100644 --- a/.github/workflows/release-gem.yml +++ b/.github/workflows/release-gem.yml @@ -123,30 +123,11 @@ jobs: shell: bash run: | set -euo pipefail - linker="$RUNNER_TEMP/zig-cc" - cat > "$linker" <<'SH' - #!/usr/bin/env bash - # cc-rs appends clang-style --target=; zig cc only - # understands zig-style triples, so drop incoming target flags in - # favor of the pinned ZIG_TARGET. - args=() - skip=0 - for arg in "$@"; do - if (( skip )); then skip=0; continue; fi - case "$arg" in - --target=*) continue ;; - -target) skip=1; continue ;; - *) args+=("$arg") ;; - esac - done - exec zig cc -target "${ZIG_TARGET}" "${args[@]}" - SH - chmod +x "$linker" target_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '[:lower:]-' '[:upper:]_')" cc_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '-' '_')" - echo "ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" - echo "CARGO_TARGET_${target_env}_LINKER=$linker" >> "$GITHUB_ENV" - echo "CC_${cc_env}=$linker" >> "$GITHUB_ENV" + echo "CARGO_ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" + echo "CARGO_TARGET_${target_env}_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_${cc_env}=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" - name: Build native library run: cargo build -p rustwright-capi --release --locked diff --git a/.github/workflows/release-maven.yml b/.github/workflows/release-maven.yml index 1589f78..97bf4fb 100644 --- a/.github/workflows/release-maven.yml +++ b/.github/workflows/release-maven.yml @@ -137,30 +137,11 @@ jobs: shell: bash run: | set -euo pipefail - linker="$RUNNER_TEMP/zig-cc" - cat > "$linker" <<'SH' - #!/usr/bin/env bash - # cc-rs appends clang-style --target=; zig cc only - # understands zig-style triples, so drop incoming target flags in - # favor of the pinned ZIG_TARGET. - args=() - skip=0 - for arg in "$@"; do - if (( skip )); then skip=0; continue; fi - case "$arg" in - --target=*) continue ;; - -target) skip=1; continue ;; - *) args+=("$arg") ;; - esac - done - exec zig cc -target "${ZIG_TARGET}" "${args[@]}" - SH - chmod +x "$linker" target_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '[:lower:]-' '[:upper:]_')" cc_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '-' '_')" - echo "ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" - echo "CARGO_TARGET_${target_env}_LINKER=$linker" >> "$GITHUB_ENV" - echo "CC_${cc_env}=$linker" >> "$GITHUB_ENV" + echo "CARGO_ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" + echo "CARGO_TARGET_${target_env}_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_${cc_env}=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" - name: Build native library run: cargo build -p rustwright-capi --release --locked diff --git a/.github/workflows/release-mcp-npm.yml b/.github/workflows/release-mcp-npm.yml index ca002e4..ad19e08 100644 --- a/.github/workflows/release-mcp-npm.yml +++ b/.github/workflows/release-mcp-npm.yml @@ -80,6 +80,18 @@ jobs: with: version: 0.14.1 + - name: Configure Linux linker + if: ${{ matrix.zig }} + shell: bash + run: | + set -euo pipefail + target_env="$(printf '%s' "${{ matrix.rustTarget }}" | tr '[:lower:]-' '[:upper:]_')" + cc_env="$(printf '%s' "${{ matrix.rustTarget }}" | tr '-' '_')" + zig_target="${{ matrix.zigTarget }}" + echo "CARGO_ZIG_TARGET=$zig_target" >> "$GITHUB_ENV" + echo "CARGO_TARGET_${target_env}_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_${cc_env}=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + - name: Install cargo-zigbuild if: ${{ matrix.zig }} uses: taiki-e/install-action@2ca9b94c269419b7b0c711c09d0b21c4e1d51145 # v2.83.1 @@ -125,6 +137,13 @@ jobs: publish: name: publish npm packages needs: [metadata, build] + if: >- + ${{ + github.repository == 'Skyvern-AI/rustwright' && + github.ref_type == 'tag' && + startsWith(github.ref_name, 'mcp-npm-v') && + github.event_name == 'push' + }} runs-on: ubuntu-24.04 environment: name: npm diff --git a/.github/workflows/release-npm.yml b/.github/workflows/release-npm.yml index 639ddef..09046ae 100644 --- a/.github/workflows/release-npm.yml +++ b/.github/workflows/release-npm.yml @@ -143,30 +143,11 @@ jobs: shell: bash run: | set -euo pipefail - linker="$RUNNER_TEMP/zig-cc" - cat > "$linker" <<'SH' - #!/usr/bin/env bash - # cc-rs appends clang-style --target=; zig cc only - # understands zig-style triples, so drop incoming target flags in - # favor of the pinned ZIG_TARGET. - args=() - skip=0 - for arg in "$@"; do - if (( skip )); then skip=0; continue; fi - case "$arg" in - --target=*) continue ;; - -target) skip=1; continue ;; - *) args+=("$arg") ;; - esac - done - exec zig cc -target "${ZIG_TARGET}" "${args[@]}" - SH - chmod +x "$linker" target_env="$(printf '%s' "${{ matrix.platform.target }}" | tr '[:lower:]-' '[:upper:]_')" cc_env="$(printf '%s' "${{ matrix.platform.target }}" | tr '-' '_')" - echo "ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" - echo "CARGO_TARGET_${target_env}_LINKER=$linker" >> "$GITHUB_ENV" - echo "CC_${cc_env}=$linker" >> "$GITHUB_ENV" + echo "CARGO_ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" + echo "CARGO_TARGET_${target_env}_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_${cc_env}=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" - name: Install Node.js build dependencies working-directory: node diff --git a/.github/workflows/release-nuget.yml b/.github/workflows/release-nuget.yml index 15261d1..d2ac5eb 100644 --- a/.github/workflows/release-nuget.yml +++ b/.github/workflows/release-nuget.yml @@ -137,30 +137,11 @@ jobs: shell: bash run: | set -euo pipefail - linker="$RUNNER_TEMP/zig-cc" - cat > "$linker" <<'SH' - #!/usr/bin/env bash - # cc-rs appends clang-style --target=; zig cc only - # understands zig-style triples, so drop incoming target flags in - # favor of the pinned ZIG_TARGET. - args=() - skip=0 - for arg in "$@"; do - if (( skip )); then skip=0; continue; fi - case "$arg" in - --target=*) continue ;; - -target) skip=1; continue ;; - *) args+=("$arg") ;; - esac - done - exec zig cc -target "${ZIG_TARGET}" "${args[@]}" - SH - chmod +x "$linker" target_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '[:lower:]-' '[:upper:]_')" cc_env="$(printf '%s' "$CARGO_BUILD_TARGET" | tr '-' '_')" - echo "ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" - echo "CARGO_TARGET_${target_env}_LINKER=$linker" >> "$GITHUB_ENV" - echo "CC_${cc_env}=$linker" >> "$GITHUB_ENV" + echo "CARGO_ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" + echo "CARGO_TARGET_${target_env}_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_${cc_env}=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" - name: Build native library run: cargo build -p rustwright-capi --release --locked diff --git a/.github/workflows/release-pypi.yml b/.github/workflows/release-pypi.yml index 51e0944..21f6f1f 100644 --- a/.github/workflows/release-pypi.yml +++ b/.github/workflows/release-pypi.yml @@ -86,24 +86,29 @@ jobs: - runner: macos-latest target: aarch64-apple-darwin manylinux: auto + zig_target: "" extra_args: "" - runner: macos-latest target: x86_64-apple-darwin manylinux: auto + zig_target: "" extra_args: "" - runner: ubuntu-latest target: x86_64-unknown-linux-gnu manylinux: "2_17" + zig_target: "" extra_args: "" - runner: ubuntu-latest target: aarch64-unknown-linux-gnu manylinux: "2_17" # ring's pregenerated aarch64 assembly fails under the manylinux # cross-gcc ("ARM assembler must define __ARM_ARCH"); build with zig. + zig_target: aarch64-linux-gnu.2.17 extra_args: "--zig" - runner: windows-latest target: x86_64-pc-windows-msvc manylinux: auto + zig_target: "" extra_args: "" steps: @@ -115,6 +120,15 @@ jobs: with: python-version: "3.12" + - name: Configure aarch64 Linux linker + if: ${{ matrix.platform.zig_target != '' }} + shell: bash + run: | + set -euo pipefail + echo "CARGO_ZIG_TARGET=${{ matrix.platform.zig_target }}" >> "$GITHUB_ENV" + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + echo "CC_aarch64_unknown_linux_gnu=$GITHUB_WORKSPACE/tools/zig-cc" >> "$GITHUB_ENV" + - name: Build abi3 wheel uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0 with: