feat(agent-queue): report PR state (open/merged) on the run
This commit is contained in:
parent
09b16c4b19
commit
c2dbbaf188
@ -981,10 +981,12 @@ run_worker() {
|
|||||||
[[ -n "$_prtitle" ]] || _prtitle="agent-queue job $job"
|
[[ -n "$_prtitle" ]] || _prtitle="agent-queue job $job"
|
||||||
_prurl=$(_fleet_pr_open "$pr_dir" "$pr_base" "$pr_jid" "$_prtitle" "$logf") || _prurl=""
|
_prurl=$(_fleet_pr_open "$pr_dir" "$pr_base" "$pr_jid" "$_prtitle" "$logf") || _prurl=""
|
||||||
if [[ -n "$_prurl" ]]; then
|
if [[ -n "$_prurl" ]]; then
|
||||||
{ echo "pr_url=$_prurl"; echo "pr_branch=aq/job/$pr_jid"; } >> "$metaf"
|
{ echo "pr_url=$_prurl"; echo "pr_branch=aq/job/$pr_jid"; echo "pr_state=open"; } >> "$metaf"
|
||||||
echo "PR opened: $_prurl" >> "$logf"
|
echo "PR opened: $_prurl" >> "$logf"
|
||||||
# Opt-in auto-merge (job autoMerge flag): squash-merge the PR now.
|
# Opt-in auto-merge (job autoMerge flag): squash-merge the PR now.
|
||||||
[[ "$pr_automerge" == "true" ]] && _fleet_pr_merge "$pr_dir" "$_prurl" "$logf"
|
if [[ "$pr_automerge" == "true" ]] && _fleet_pr_merge "$pr_dir" "$_prurl" "$logf"; then
|
||||||
|
echo "pr_state=merged" >> "$metaf"
|
||||||
|
fi
|
||||||
if fleet_enabled && _fleet_is_job "$job"; then fleet_report_insights "$job" testing; fi
|
if fleet_enabled && _fleet_is_job "$job"; then fleet_report_insights "$job" testing; fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -307,13 +307,15 @@ fleet_report_insights() {
|
|||||||
[[ "$turns" =~ ^[0-9]+$ ]] && ins+=",\"turns\":$turns"
|
[[ "$turns" =~ ^[0-9]+$ ]] && ins+=",\"turns\":$turns"
|
||||||
[[ "$tools" =~ ^[0-9]+$ ]] && ins+=",\"toolCalls\":$tools"
|
[[ "$tools" =~ ^[0-9]+$ ]] && ins+=",\"toolCalls\":$tools"
|
||||||
[[ "$est" == "true" || "$est" == "1" ]] && ins+=",\"estimated\":true"
|
[[ "$est" == "true" || "$est" == "1" ]] && ins+=",\"estimated\":true"
|
||||||
local pr_url pr_branch
|
local pr_url pr_branch pr_state
|
||||||
pr_url=$(_meta_val "$metaf" pr_url); pr_branch=$(_meta_val "$metaf" pr_branch)
|
pr_url=$(_meta_val "$metaf" pr_url); pr_branch=$(_meta_val "$metaf" pr_branch)
|
||||||
|
pr_state=$(_meta_val "$metaf" pr_state)
|
||||||
local body="{\"leaseEpoch\":${epoch:-0}"
|
local body="{\"leaseEpoch\":${epoch:-0}"
|
||||||
[[ -n "$ins" ]] && body+=",\"insights\":{${ins#,}}"
|
[[ -n "$ins" ]] && body+=",\"insights\":{${ins#,}}"
|
||||||
[[ -n "$result" ]] && body+=",\"result\":\"$(_json_escape "$result")\""
|
[[ -n "$result" ]] && body+=",\"result\":\"$(_json_escape "$result")\""
|
||||||
[[ -n "$pr_url" ]] && body+=",\"prUrl\":\"$(_json_escape "$pr_url")\""
|
[[ -n "$pr_url" ]] && body+=",\"prUrl\":\"$(_json_escape "$pr_url")\""
|
||||||
[[ -n "$pr_branch" ]] && body+=",\"branch\":\"$(_json_escape "$pr_branch")\""
|
[[ -n "$pr_branch" ]] && body+=",\"branch\":\"$(_json_escape "$pr_branch")\""
|
||||||
|
[[ -n "$pr_state" ]] && body+=",\"prState\":\"$(_json_escape "$pr_state")\""
|
||||||
body+="}"
|
body+="}"
|
||||||
_fleet_call POST "/fleet/jobs/$jid/lease/release" "$body"
|
_fleet_call POST "/fleet/jobs/$jid/lease/release" "$body"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -891,8 +891,8 @@ if git -C "$prbare" rev-parse --verify aq/job/fjob_pr >/dev/null 2>&1 \
|
|||||||
&& grep -q 'pr merge' "$tmp/gh-calls.log" 2>/dev/null \
|
&& grep -q 'pr merge' "$tmp/gh-calls.log" 2>/dev/null \
|
||||||
&& git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx 'PR_CHANGE.md' \
|
&& git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx 'PR_CHANGE.md' \
|
||||||
&& ! git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx '.aq_pr.md' \
|
&& ! git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | grep -qx '.aq_pr.md' \
|
||||||
&& grep -q '/fleet/jobs/fjob_pr/lease/release :: .*"prUrl":"https://github.com/test/repo/pull/7"' "$AQ_FSTUB_CALLS"; then
|
&& grep -q '/fleet/jobs/fjob_pr/lease/release :: .*"prUrl":"https://github.com/test/repo/pull/7".*"prState":"merged"' "$AQ_FSTUB_CALLS"; then
|
||||||
pass "fleet PR mode: authored title + verify gate + auto-merge (gh pr merge) + prUrl reported"
|
pass "fleet PR mode: authored title + verify gate + auto-merge + prUrl/prState=merged reported"
|
||||||
else
|
else
|
||||||
echo "gh-calls: $(cat "$tmp/gh-calls.log" 2>/dev/null)" >&2
|
echo "gh-calls: $(cat "$tmp/gh-calls.log" 2>/dev/null)" >&2
|
||||||
echo "tree: $(git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | tr '\n' ' ')" >&2
|
echo "tree: $(git -C "$prbare" ls-tree -r aq/job/fjob_pr --name-only 2>/dev/null | tr '\n' ' ')" >&2
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user