From d36015ea06f89f56befda4703104114069988a02 Mon Sep 17 00:00:00 2001 From: Channing Conger Date: Wed, 6 May 2026 15:50:03 -0700 Subject: [PATCH] ci: add builds for all targets --- .github/scripts/test_rusty_v8_bazel.py | 4 ++ .github/workflows/rusty-v8-release.yml | 52 ++++++++++++++---- .github/workflows/v8-canary.yml | 47 +++++++++++++--- third_party/v8/BUILD.bazel | 76 ++++++++++++++++++++++++++ third_party/v8/README.md | 4 ++ 5 files changed, 162 insertions(+), 21 deletions(-) diff --git a/.github/scripts/test_rusty_v8_bazel.py b/.github/scripts/test_rusty_v8_bazel.py index c013eb7ca8..8c9d821ada 100644 --- a/.github/scripts/test_rusty_v8_bazel.py +++ b/.github/scripts/test_rusty_v8_bazel.py @@ -22,6 +22,10 @@ class RustyV8BazelTest(unittest.TestCase): "//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_unknown_linux_musl", rusty_v8_bazel.release_pair_label("x86_64-unknown-linux-musl", sandbox=True), ) + self.assertEqual( + "//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_apple_darwin", + rusty_v8_bazel.release_pair_label("x86_64-apple-darwin", sandbox=True), + ) self.assertEqual( "librusty_v8_release_x86_64-unknown-linux-musl.a.gz", rusty_v8_bazel.staged_archive_name( diff --git a/.github/workflows/rusty-v8-release.yml b/.github/workflows/rusty-v8-release.yml index fbc3f7e2bc..7036c87522 100644 --- a/.github/workflows/rusty-v8-release.yml +++ b/.github/workflows/rusty-v8-release.yml @@ -64,31 +64,61 @@ jobs: matrix: include: - runner: ubuntu-24.04 + bazel_config: ci-v8 + platform: linux_amd64 + sandbox: true + target: x86_64-unknown-linux-gnu + variant: ptrcomp-sandbox + - runner: ubuntu-24.04-arm + bazel_config: ci-v8 + platform: linux_arm64 + sandbox: true + target: aarch64-unknown-linux-gnu + variant: ptrcomp-sandbox + - runner: macos-15-xlarge + bazel_config: ci-macos + platform: macos_amd64 + sandbox: true + target: x86_64-apple-darwin + variant: ptrcomp-sandbox + - runner: macos-15-xlarge + bazel_config: ci-macos + platform: macos_arm64 + sandbox: true + target: aarch64-apple-darwin + variant: ptrcomp-sandbox + - runner: ubuntu-24.04 + bazel_config: ci-v8 platform: linux_amd64_musl sandbox: false target: x86_64-unknown-linux-musl variant: release - runner: ubuntu-24.04-arm + bazel_config: ci-v8 platform: linux_arm64_musl sandbox: false target: aarch64-unknown-linux-musl variant: release - runner: ubuntu-24.04 + bazel_config: ci-v8 platform: linux_amd64_musl sandbox: true target: x86_64-unknown-linux-musl variant: ptrcomp-sandbox - runner: ubuntu-24.04-arm + bazel_config: ci-v8 platform: linux_arm64_musl sandbox: true target: aarch64-unknown-linux-musl variant: ptrcomp-sandbox - runner: ubuntu-24.04 + bazel_config: ci-v8 platform: windows_amd64 sandbox: true target: x86_64-pc-windows-msvc variant: ptrcomp-sandbox - runner: ubuntu-24.04-arm + bazel_config: ci-v8 platform: windows_arm64 sandbox: true target: aarch64-pc-windows-msvc @@ -121,35 +151,33 @@ jobs: target_suffix="${TARGET//-/_}" pair_kind="release_pair" - bazel_config_args=(--config=v8-release-compat) if [[ "${SANDBOX}" == "true" ]]; then pair_kind="sandbox_release_pair" - bazel_config_args=() fi pair_target="//third_party/v8:rusty_v8_${pair_kind}_${target_suffix}" - extra_targets=() - if [[ "${TARGET}" == *-unknown-linux-musl ]]; then - extra_targets=( - "@llvm//runtimes/libcxx:libcxx.static" - "@llvm//runtimes/libcxx:libcxxabi.static" - ) - fi bazel_args=( build -c opt "--platforms=@llvm//platforms:${PLATFORM}" - "${bazel_config_args[@]}" "${pair_target}" - "${extra_targets[@]}" --build_metadata=COMMIT_SHA=$(git rev-parse HEAD) ) + if [[ "${TARGET}" == *-unknown-linux-musl ]]; then + bazel_args+=( + "@llvm//runtimes/libcxx:libcxx.static" + "@llvm//runtimes/libcxx:libcxxabi.static" + ) + fi + if [[ "${SANDBOX}" != "true" ]]; then + bazel_args+=(--config=v8-release-compat) + fi bazel \ --noexperimental_remote_repo_contents_cache \ "${bazel_args[@]}" \ - --config=ci-v8 \ + "--config=${{ matrix.bazel_config }}" \ "--remote_header=x-buildbuddy-api-key=${BUILDBUDDY_API_KEY}" - name: Stage release pair diff --git a/.github/workflows/v8-canary.yml b/.github/workflows/v8-canary.yml index 32e529b731..7c6e01becb 100644 --- a/.github/workflows/v8-canary.yml +++ b/.github/workflows/v8-canary.yml @@ -70,21 +70,49 @@ jobs: matrix: include: - runner: ubuntu-24.04 + bazel_config: ci-v8 + platform: linux_amd64 + sandbox: true + target: x86_64-unknown-linux-gnu + variant: ptrcomp-sandbox + - runner: ubuntu-24.04-arm + bazel_config: ci-v8 + platform: linux_arm64 + sandbox: true + target: aarch64-unknown-linux-gnu + variant: ptrcomp-sandbox + - runner: macos-15-xlarge + bazel_config: ci-macos + platform: macos_amd64 + sandbox: true + target: x86_64-apple-darwin + variant: ptrcomp-sandbox + - runner: macos-15-xlarge + bazel_config: ci-macos + platform: macos_arm64 + sandbox: true + target: aarch64-apple-darwin + variant: ptrcomp-sandbox + - runner: ubuntu-24.04 + bazel_config: ci-v8 platform: linux_amd64_musl sandbox: false target: x86_64-unknown-linux-musl variant: release - runner: ubuntu-24.04 + bazel_config: ci-v8 platform: linux_amd64_musl sandbox: true target: x86_64-unknown-linux-musl variant: ptrcomp-sandbox - runner: ubuntu-24.04-arm + bazel_config: ci-v8 platform: linux_arm64_musl sandbox: false target: aarch64-unknown-linux-musl variant: release - runner: ubuntu-24.04-arm + bazel_config: ci-v8 platform: linux_arm64_musl sandbox: true target: aarch64-unknown-linux-musl @@ -118,30 +146,31 @@ jobs: target_suffix="${TARGET//-/_}" pair_kind="release_pair" - bazel_config_args=(--config=v8-release-compat) if [[ "${SANDBOX}" == "true" ]]; then pair_kind="sandbox_release_pair" - bazel_config_args=() fi pair_target="//third_party/v8:rusty_v8_${pair_kind}_${target_suffix}" - extra_targets=( - "@llvm//runtimes/libcxx:libcxx.static" - "@llvm//runtimes/libcxx:libcxxabi.static" - ) bazel_args=( build "--platforms=@llvm//platforms:${PLATFORM}" - "${bazel_config_args[@]}" "${pair_target}" - "${extra_targets[@]}" --build_metadata=COMMIT_SHA=$(git rev-parse HEAD) ) + if [[ "${TARGET}" == *-unknown-linux-musl ]]; then + bazel_args+=( + "@llvm//runtimes/libcxx:libcxx.static" + "@llvm//runtimes/libcxx:libcxxabi.static" + ) + fi + if [[ "${SANDBOX}" != "true" ]]; then + bazel_args+=(--config=v8-release-compat) + fi bazel \ --noexperimental_remote_repo_contents_cache \ "${bazel_args[@]}" \ - --config=ci-v8 \ + "--config=${{ matrix.bazel_config }}" \ "--remote_header=x-buildbuddy-api-key=${BUILDBUDDY_API_KEY}" - name: Stage release pair diff --git a/third_party/v8/BUILD.bazel b/third_party/v8/BUILD.bazel index e2f1a19c9f..f122433f73 100644 --- a/third_party/v8/BUILD.bazel +++ b/third_party/v8/BUILD.bazel @@ -328,6 +328,18 @@ filegroup( srcs = ["@v8_crate_146_4_0//:src_binding_release_x86_64_unknown_linux_gnu"], ) +cc_static_library( + name = "v8_147_4_0_aarch64_apple_darwin_bazel", + deps = [":v8_147_4_0_binding"], + features = V8_STATIC_LIBRARY_FEATURES, +) + +cc_static_library( + name = "v8_147_4_0_aarch64_unknown_linux_gnu_bazel", + deps = [":v8_147_4_0_binding"], + features = V8_STATIC_LIBRARY_FEATURES, +) + cc_static_library( name = "v8_147_4_0_aarch64_unknown_linux_musl_release_base", deps = [":v8_147_4_0_binding"], @@ -358,6 +370,18 @@ EOF """, ) +cc_static_library( + name = "v8_147_4_0_x86_64_apple_darwin_bazel", + deps = [":v8_147_4_0_binding"], + features = V8_STATIC_LIBRARY_FEATURES, +) + +cc_static_library( + name = "v8_147_4_0_x86_64_unknown_linux_gnu_bazel", + deps = [":v8_147_4_0_binding"], + features = V8_STATIC_LIBRARY_FEATURES, +) + cc_static_library( name = "v8_147_4_0_x86_64_unknown_linux_musl_release", deps = [":v8_147_4_0_binding"], @@ -376,6 +400,26 @@ cc_static_library( features = V8_STATIC_LIBRARY_FEATURES, ) +filegroup( + name = "src_binding_release_aarch64_apple_darwin_147_4_0_release", + srcs = ["@v8_crate_147_4_0//:src_binding_release_aarch64_apple_darwin"], +) + +filegroup( + name = "src_binding_release_x86_64_apple_darwin_147_4_0_release", + srcs = ["@v8_crate_147_4_0//:src_binding_release_x86_64_apple_darwin"], +) + +filegroup( + name = "src_binding_release_aarch64_unknown_linux_gnu_147_4_0_release", + srcs = ["@v8_crate_147_4_0//:src_binding_release_aarch64_unknown_linux_gnu"], +) + +filegroup( + name = "src_binding_release_x86_64_unknown_linux_gnu_147_4_0_release", + srcs = ["@v8_crate_147_4_0//:src_binding_release_x86_64_unknown_linux_gnu"], +) + filegroup( name = "src_binding_release_aarch64_unknown_linux_musl_147_4_0_release", srcs = ["@v8_crate_147_4_0//:src_binding_release_aarch64_unknown_linux_gnu"], @@ -460,6 +504,38 @@ filegroup( ], ) +filegroup( + name = "rusty_v8_sandbox_release_pair_x86_64_apple_darwin", + srcs = [ + ":v8_147_4_0_x86_64_apple_darwin_bazel", + ":src_binding_release_x86_64_apple_darwin_147_4_0_release", + ], +) + +filegroup( + name = "rusty_v8_sandbox_release_pair_aarch64_apple_darwin", + srcs = [ + ":v8_147_4_0_aarch64_apple_darwin_bazel", + ":src_binding_release_aarch64_apple_darwin_147_4_0_release", + ], +) + +filegroup( + name = "rusty_v8_sandbox_release_pair_x86_64_unknown_linux_gnu", + srcs = [ + ":v8_147_4_0_x86_64_unknown_linux_gnu_bazel", + ":src_binding_release_x86_64_unknown_linux_gnu_147_4_0_release", + ], +) + +filegroup( + name = "rusty_v8_sandbox_release_pair_aarch64_unknown_linux_gnu", + srcs = [ + ":v8_147_4_0_aarch64_unknown_linux_gnu_bazel", + ":src_binding_release_aarch64_unknown_linux_gnu_147_4_0_release", + ], +) + filegroup( name = "rusty_v8_sandbox_release_pair_x86_64_unknown_linux_musl", srcs = [ diff --git a/third_party/v8/README.md b/third_party/v8/README.md index cc11f77a12..b9f69aa945 100644 --- a/third_party/v8/README.md +++ b/third_party/v8/README.md @@ -66,6 +66,10 @@ release artifacts as the statically linked form: The same run also builds the matching sandbox pair targets: +- `//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_apple_darwin` +- `//third_party/v8:rusty_v8_sandbox_release_pair_aarch64_apple_darwin` +- `//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_unknown_linux_gnu` +- `//third_party/v8:rusty_v8_sandbox_release_pair_aarch64_unknown_linux_gnu` - `//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_unknown_linux_musl` - `//third_party/v8:rusty_v8_sandbox_release_pair_aarch64_unknown_linux_musl` - `//third_party/v8:rusty_v8_sandbox_release_pair_x86_64_pc_windows_msvc`