54 lines
1.5 KiBLFS
Bash
54 lines
1.5 KiBLFS
Bash
#!/usr/bin/env bash
|
|
# Bundle a PR review's report + per-config jobs into pr<N>.zip for posting.
|
|
#
|
|
# Usage: package_traj.sh <pr_number> <jobs_root> <report_txt> [extra_files...]
|
|
#
|
|
# Layout inside the zip (mirrors the format users see in PR comments,
|
|
# e.g. https://github.com/benchflow-ai/skillsbench/pull/560#issuecomment-3789639243):
|
|
#
|
|
# pr<N>/
|
|
# report.txt
|
|
# summary.json (from parse_results.py if present alongside report)
|
|
# policy.json (from policy check, if present)
|
|
# jobs/oracle/...
|
|
# jobs/claude-skills/...
|
|
# jobs/claude-noskills/...
|
|
# jobs/codex-skills/...
|
|
# jobs/codex-noskills/...
|
|
# audit-*.json (per-job trajectory audits, if present)
|
|
|
|
set -euo pipefail
|
|
|
|
PR="${1:?pr number required}"
|
|
JOBS="${2:?jobs root required}"
|
|
REPORT="${3:?report path required}"
|
|
shift 3 || true
|
|
|
|
OUT_DIR="$(dirname "$REPORT")"
|
|
STAGE="$OUT_DIR/pr$PR"
|
|
ZIP="$OUT_DIR/pr$PR.zip"
|
|
|
|
rm -rf "$STAGE" "$ZIP"
|
|
mkdir -p "$STAGE/jobs"
|
|
|
|
cp "$REPORT" "$STAGE/report.txt"
|
|
|
|
for sib in summary.json policy.json; do
|
|
[[ -f "$OUT_DIR/$sib" ]] && cp "$OUT_DIR/$sib" "$STAGE/$sib"
|
|
done
|
|
|
|
for f in "$OUT_DIR"/audit-*.json; do
|
|
[[ -f "$f" ]] && cp "$f" "$STAGE/"
|
|
done
|
|
|
|
for cfg in oracle claude-skills claude-noskills codex-skills codex-noskills; do
|
|
[[ -d "$JOBS/$cfg" ]] && cp -R "$JOBS/$cfg" "$STAGE/jobs/$cfg"
|
|
done
|
|
|
|
for extra in "$@"; do
|
|
[[ -e "$extra" ]] && cp -R "$extra" "$STAGE/"
|
|
done
|
|
|
|
(cd "$OUT_DIR" && zip -qr "pr$PR.zip" "pr$PR")
|
|
echo "$ZIP"
|