up
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Findings Ledger CI / build-test (push) Has been cancelled
Findings Ledger CI / migration-validation (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
cryptopro-linux-csp / build-and-test (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
sm-remote-ci / build-and-test (push) Has been cancelled
Findings Ledger CI / generate-manifest (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Findings Ledger CI / build-test (push) Has been cancelled
Findings Ledger CI / migration-validation (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
cryptopro-linux-csp / build-and-test (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
sm-remote-ci / build-and-test (push) Has been cancelled
Findings Ledger CI / generate-manifest (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
This commit is contained in:
62
bench/reachability-benchmark/tools/java/ensure_jdk.sh
Normal file
62
bench/reachability-benchmark/tools/java/ensure_jdk.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# Offline-friendly helper to make a JDK available for benchmark builds.
|
||||
# Order of preference:
|
||||
# 1) Respect an existing JAVA_HOME when it contains javac.
|
||||
# 2) Use javac from PATH when present.
|
||||
# 3) Extract a vendored archive (jdk-21.0.1.tar.gz) into .jdk/ and use it.
|
||||
|
||||
ensure_bench_jdk() {
|
||||
# Re-use an explicitly provided JAVA_HOME when it already has javac.
|
||||
if [[ -n "${JAVA_HOME:-}" && -x "${JAVA_HOME}/bin/javac" ]]; then
|
||||
export PATH="${JAVA_HOME}/bin:${PATH}"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Use any javac already on PATH.
|
||||
if command -v javac >/dev/null 2>&1; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
local script_dir bench_root cache_dir archive_dir archive_path candidate
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
bench_root="$(cd "${script_dir}/../.." && pwd)"
|
||||
repo_root="$(cd "${bench_root}/../.." && pwd)"
|
||||
cache_dir="${bench_root}/.jdk"
|
||||
archive_dir="${cache_dir}/jdk-21.0.1+12"
|
||||
|
||||
# Prefer an archive co-located with this script; fall back to the repo copy.
|
||||
for candidate in \
|
||||
"${script_dir}/jdk-21.0.1.tar.gz" \
|
||||
"${repo_root}/src/Sdk/StellaOps.Sdk.Generator/tools/jdk-21.0.1.tar.gz"
|
||||
do
|
||||
if [[ -f "${candidate}" ]]; then
|
||||
archive_path="${candidate}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "${archive_path:-}" ]]; then
|
||||
echo "[ensure_jdk] No JDK found. Set JAVA_HOME or place jdk-21.0.1.tar.gz under tools/java/." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
mkdir -p "${cache_dir}"
|
||||
if [[ ! -d "${archive_dir}" ]]; then
|
||||
tar -xzf "${archive_path}" -C "${cache_dir}"
|
||||
fi
|
||||
|
||||
if [[ ! -x "${archive_dir}/bin/javac" ]]; then
|
||||
echo "[ensure_jdk] Extracted archive but javac not found under ${archive_dir}" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
export JAVA_HOME="${archive_dir}"
|
||||
export PATH="${JAVA_HOME}/bin:${PATH}"
|
||||
}
|
||||
|
||||
# Allow running as a script for quick verification.
|
||||
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
|
||||
if ensure_bench_jdk; then
|
||||
java -version
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user