Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions .github/workflows/publish-non-release-website-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,33 @@ jobs:
with:
fetch-depth: 0
ref: site
- name: Cherry pick the commit to site
- name: Cherry pick all commits in push to site
env:
COMMITS: ${{ toJson(github.event.commits) }}
run: |
git config user.email ${{ github.actor }}@users.noreply.github.com
git config user.name ${{ github.actor }}
git cherry-pick --strategy=recursive -X theirs $GITHUB_SHA
if [ $? -neq 0 ]; then
git status | sed -n 's/deleted by us://p' | xargs git add
git cherry-pick --continue --no-edit

# github.event.commits is capped at 20 entries. Warn loudly if we hit
# the cap so a silently-truncated push shows up in the step summary
# rather than as "site branch is quietly missing commits."
if [ "$(echo "$COMMITS" | jq 'length')" -ge 20 ]; then
echo "::warning::Push contains 20+ commits — github.event.commits may be truncated; some commits may not be cherry-picked."
fi

# Extract each commit SHA from the push payload and iterate chronologically
echo "$COMMITS" | jq -r '.[].id' | while read -r commit_sha; do
echo "----------------------------------------"
echo "Cherry-picking commit: $commit_sha"
echo "----------------------------------------"

if ! git cherry-pick --strategy=recursive -X theirs "$commit_sha"; then
echo "Handling cherry-pick conflict..."
git status | sed -n 's/deleted by us://p' | xargs -r git add
git cherry-pick --continue --no-edit
fi
done

git push origin site

publish-website:
Expand Down
Loading