Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 3 additions & 22 deletions .github/workflows/release-gem.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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=<rust-triple>; 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
Expand Down
25 changes: 3 additions & 22 deletions .github/workflows/release-maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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=<rust-triple>; 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
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/release-mcp-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
25 changes: 3 additions & 22 deletions .github/workflows/release-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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=<rust-triple>; 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
Expand Down
25 changes: 3 additions & 22 deletions .github/workflows/release-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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=<rust-triple>; 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
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/release-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand Down
Loading