Files
codex/.github/actions/setup-rusty-v8/action.yml

52 lines
2.1 KiB
YAML

name: setup-rusty-v8
description: Download and verify Codex-built rusty_v8 artifacts for Cargo builds.
inputs:
target:
description: Rust target triple with Codex-built V8 release artifacts.
required: true
sandbox:
description: Use the V8 pointer-compression sandbox artifact profile.
required: false
default: "false"
runs:
using: composite
steps:
- name: Configure rusty_v8 artifact overrides and verify checksums
shell: bash
env:
SANDBOX: ${{ inputs.sandbox }}
TARGET: ${{ inputs.target }}
run: |
set -euo pipefail
version="$(python3 "${GITHUB_WORKSPACE}/.github/scripts/rusty_v8_bazel.py" resolved-v8-crate-version)"
release_tag="rusty-v8-v${version}"
base_url="https://github.com/openai/codex/releases/download/${release_tag}"
binding_dir="${RUNNER_TEMP}/rusty_v8"
artifact_profile="release"
if [[ "${SANDBOX}" == "true" ]]; then
artifact_profile="ptrcomp_sandbox_release"
fi
archive_path="${binding_dir}/librusty_v8_${artifact_profile}_${TARGET}.a.gz"
binding_path="${binding_dir}/src_binding_${artifact_profile}_${TARGET}.rs"
checksums_path="${binding_dir}/rusty_v8_${artifact_profile}_${TARGET}.sha256"
mkdir -p "${binding_dir}"
curl -fsSL "${base_url}/$(basename "${archive_path}")" -o "${archive_path}"
curl -fsSL "${base_url}/$(basename "${binding_path}")" -o "${binding_path}"
curl -fsSL "${base_url}/$(basename "${checksums_path}")" -o "${checksums_path}"
if [[ "$(wc -l < "${checksums_path}")" -ne 2 ]]; then
echo "Expected exactly two checksums for ${TARGET} in ${checksums_path}" >&2
exit 1
fi
if command -v sha256sum >/dev/null 2>&1; then
(cd "${binding_dir}" && sha256sum -c "${checksums_path}")
else
(cd "${binding_dir}" && shasum -a 256 -c "${checksums_path}")
fi
echo "RUSTY_V8_ARCHIVE=${archive_path}" >> "${GITHUB_ENV}"
echo "RUSTY_V8_SRC_BINDING_PATH=${binding_path}" >> "${GITHUB_ENV}"