Reconcile Claude platform qualification with current master

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-15 06:52:55 -05:00
commit c7d1dfb5ee
437 files changed
+31183 -12051

No files matched your search

+48 -2
View File
@@ -215,10 +215,14 @@ jobs:
echo "runner=$aws_runner" >> "$GITHUB_OUTPUT"
echo '::notice title=AWS CI routing::Using an ephemeral RunsOn Fleet runner'
- name: Select stacked PR CI scope
- name: Select PR CI scope
id: scope
shell: bash
env:
GH_TOKEN: ${{ github.token }}
EVENT_NAME: ${{ github.event_name }}
EVENT_BASE_SHA: ${{ github.event.pull_request.base.sha }}
EVENT_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
STACK_JSON: ${{ toJSON(github.event.pull_request.stack) }}
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
run: |
@@ -226,17 +230,53 @@ jobs:
full_ci='true'
reason='ordinary pull request'
# True when the PR's own diff is everything it adds to the stack's
# base branch: no stack, or the lowest unmerged PR in one. Above
# that, the diff omits lower PRs' code that this run must still test.
diff_covers_stack='true'
# Release notes PRs touch only releases/v*.md or releases/beta/v*.md,
# which no build, test, or e2e lane reads. The diff is pinned to the
# event's base and head SHAs, so a later push cannot change the
# decision for this run. Any lookup failure keeps full CI.
release_notes_only() {
[[ "${EVENT_NAME:-}" == 'pull_request' ]] || return 1
[[ "${EVENT_BASE_SHA:-}" =~ ^[0-9a-f]{40}$ ]] || return 1
[[ "${EVENT_HEAD_SHA:-}" =~ ^[0-9a-f]{40}$ ]] || return 1
local comparison
comparison="$(gh api \
-H 'Accept: application/vnd.github+json' \
-H 'X-GitHub-Api-Version: 2022-11-28' \
"/repos/paperclipai/paperclip/compare/$EVENT_BASE_SHA...$EVENT_HEAD_SHA" 2>/dev/null)" \
|| return 1
# The compare API lists at most 300 files, so a full page may be
# truncated. Renames count both the old and the new path.
jq -e '
(.files | type == "array") and
(.files | length > 0 and length < 300) and
all(.files[];
(.filename | type == "string") and
([.filename, .previous_filename] | map(select(. != null)) |
all(.[]; type == "string" and test("^releases/(beta/)?v[^/]+\\.md$"))))
' <<< "$comparison" >/dev/null 2>&1
}
if jq -e 'type == "object"' <<< "$STACK_JSON" >/dev/null 2>&1; then
stack_position="$(jq -r '.position // empty' <<< "$STACK_JSON")"
stack_size="$(jq -r '.size // empty' <<< "$STACK_JSON")"
stack_base_ref="$(jq -r '.base.ref // empty' <<< "$STACK_JSON")"
if [[ -z "$stack_base_ref" || "$stack_base_ref" != "$PR_BASE_REF" ]]; then
diff_covers_stack='false'
fi
if [[ ! "$stack_position" =~ ^[1-9][0-9]*$ ]] ||
[[ ! "$stack_size" =~ ^[1-9][0-9]*$ ]] ||
(( stack_position > stack_size )) ||
[[ -z "$stack_base_ref" ]]; then
reason='malformed stack metadata; defaulting to full CI'
diff_covers_stack='false'
elif (( stack_position == stack_size )); then
reason='top pull request in stack'
elif [[ "$stack_base_ref" == "$PR_BASE_REF" ]]; then
@@ -247,6 +287,12 @@ jobs:
fi
fi
if [[ "$full_ci" == 'true' && "$diff_covers_stack" == 'true' ]] &&
release_notes_only; then
full_ci='false'
reason='release notes only'
fi
echo "full_ci=$full_ci" >> "$GITHUB_OUTPUT"
echo "::notice title=Stacked PR CI scope::$reason; full_ci=$full_ci"
echo "::notice title=PR CI scope::$reason; full_ci=$full_ci"