mirror of
https://github.com/openai/codex.git
synced 2026-11-01 19:33:35 +00:00
## What changed - Build native voice SDK and runtime artifacts with Bazel for Linux GNU, macOS, and Windows on x64 and ARM64, then configure Cargo jobs to consume them. Keep musl builds in a separate job without these inputs. - Validate artifact receipts against the target, source commit, and source manifest; verify SDK file hashes and relocate pkg-config metadata. Package the runtime and plugins with nextest archives and restore `CODEX_TEST_VOICE_RUNTIME` when running shards. - Prepare native Windows voice tools for argument-comment linting and install ARM64 DotSlash on Windows ARM64. Reduce archive disk usage, bound Linux ARM64 build concurrency, and correct the JUnit artifact path. - Recognize TLS errors wrapped directly in `io::Error`. Make TLS fallback fixtures select the native backend explicitly, allow the MCP test server's non-loopback address, and isolate skill-root tests from ancestor Git markers. Install `git` in remote test containers and filter MCP discovery assertions to POST requests. ## Testing Add tests for relocated voice inputs, Windows ARM64 import libraries with host-native pkgconf, and rejection of mismatched receipts or corrupt SDK files. Extend untrusted-certificate coverage to an explicitly selected rustls backend. GitOrigin-RevId: da3ff690b94906edc1f8f60a3c7feda1bf66134a
73 lines
2.6 KiB
Bash
Executable File
73 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
bazel_lint_args=("$@")
|
|
if [[ "${RUNNER_OS:-}" == "Windows" ]]; then
|
|
# Some Rust top-level targets are still intentionally incompatible with the
|
|
# local Windows exec platform. Skip those explicit targets so the native
|
|
# lint aspect can run across the compatible crate graph instead of failing the
|
|
# whole build after analysis.
|
|
bazel_lint_args+=("--skip_incompatible_explicit_targets")
|
|
if [[ -z "${BUILDBUDDY_API_KEY:-}" && -n "${VOICE_WINDOWS_BAZEL_REPOSITORY:-}" ]]; then
|
|
: "${VOICE_WINDOWS_BAZEL_REPOSITORY:?Windows voice tools are required}"
|
|
: "${VOICE_WINDOWS_SYSTEM_ROOT:?Windows SystemRoot is required}"
|
|
: "${VOICE_WINDOWS_HOST_ARCH:?Windows host architecture is required}"
|
|
bazel_lint_args+=(
|
|
"--extra_toolchains=//third_party/voice:windows_pkg_config_toolchain,//third_party/voice:windows_cmake_toolchain"
|
|
"--repo_env=BAZEL_MSVC_RUNTIME_VISUAL_STUDIO_EULA=1"
|
|
"--inject_repository=voice_windows_tools=${VOICE_WINDOWS_BAZEL_REPOSITORY}"
|
|
"--//third_party/voice:windows_installed_tools=@voice_windows_tools//:tools"
|
|
"--action_env=SystemRoot=${VOICE_WINDOWS_SYSTEM_ROOT}"
|
|
"--host_action_env=SystemRoot=${VOICE_WINDOWS_SYSTEM_ROOT}"
|
|
"--action_env=PROCESSOR_ARCHITECTURE=${VOICE_WINDOWS_HOST_ARCH}"
|
|
"--host_action_env=PROCESSOR_ARCHITECTURE=${VOICE_WINDOWS_HOST_ARCH}"
|
|
)
|
|
fi
|
|
fi
|
|
|
|
read_query_labels() {
|
|
local query="$1"
|
|
local query_stdout
|
|
local query_stderr
|
|
query_stdout="$(mktemp)"
|
|
query_stderr="$(mktemp)"
|
|
|
|
if ! ./.github/scripts/run-bazel-query-ci.sh \
|
|
--keep_going \
|
|
--output=label \
|
|
-- "$query" >"$query_stdout" 2>"$query_stderr"; then
|
|
cat "$query_stderr" >&2
|
|
rm -f "$query_stdout" "$query_stderr"
|
|
exit 1
|
|
fi
|
|
|
|
cat "$query_stdout"
|
|
rm -f "$query_stdout" "$query_stderr"
|
|
}
|
|
|
|
final_build_targets=(//codex-rs/...)
|
|
if [[ "${RUNNER_OS:-}" == "Windows" ]]; then
|
|
# Bazel's local Windows platform currently lacks a default test toolchain for
|
|
# `rust_test`, so target the concrete Rust crate rules directly. The lint
|
|
# aspect still walks their crate graph, which preserves incremental reuse for
|
|
# non-test code while avoiding non-Rust wrapper targets such as platform_data.
|
|
final_build_targets=()
|
|
while IFS= read -r label; do
|
|
[[ -n "$label" ]] || continue
|
|
final_build_targets+=("$label")
|
|
done < <(read_query_labels 'kind("rust_(library|binary|proc_macro) rule", //codex-rs/...)')
|
|
|
|
if [[ ${#final_build_targets[@]} -eq 0 ]]; then
|
|
echo "Failed to discover Windows Bazel lint targets." >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
./.github/scripts/run-bazel-ci.sh \
|
|
-- \
|
|
build \
|
|
"${bazel_lint_args[@]}" \
|
|
-- \
|
|
"${final_build_targets[@]}"
|