diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 16b499683fc3..a1003ac84afd 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -78,17 +78,17 @@ jobs: # Re-declare each package on the same package-specific branch used by # wheel publication. This preserves publication metadata already # waiting for review while keeping unrelated packages isolated. + # + # An existing branch is built on as it is, never rebased: a force push + # re-triggers every workflow on its PR, even when they were passing + # and nothing conflicted. Conflicts with main are left to be fixed + # manually. open_pr() { local package="$1" slug="$2" title="$3" - local branch="package/$slug" pr pr_title="$slug: update packages" remote_sha="" + local branch="package/$slug" pr pr_title="$slug: update packages" if git fetch --quiet origin "$branch" 2>/dev/null; then - remote_sha=$(git rev-parse FETCH_HEAD) || return 1 - git switch --force-create "$branch" "$remote_sha" || return 1 - if ! git rebase "$base"; then - git rebase --abort || true - return 1 - fi + git switch --force-create "$branch" FETCH_HEAD || return 1 else git switch --force-create "$branch" "$base" || return 1 fi @@ -97,9 +97,6 @@ jobs: ci_scripts/check_versions.py --declare "$package" || return 1 if git diff --quiet -- docs/packages ci_scripts/packages.txt ci_scripts/deprecated.txt; then - if [ -n "$remote_sha" ] && [ "$(git rev-parse HEAD)" != "$remote_sha" ]; then - git push --force-with-lease="$branch:$remote_sha" origin "$branch" || return 1 - fi echo "$package: nothing to declare" return 0 fi @@ -107,11 +104,7 @@ jobs: git add docs/packages ci_scripts/packages.txt ci_scripts/deprecated.txt || return 1 git commit -s -m "$title" || return 1 - if [ -n "$remote_sha" ]; then - git push --force-with-lease="$branch:$remote_sha" origin "$branch" || return 1 - else - git push origin "$branch" || return 1 - fi + git push origin "$branch" || return 1 pr=$(gh pr list --repo "$GITHUB_REPOSITORY" --head "$branch" --state open --json url --jq '.[0].url') || return 1 if [ -n "$pr" ]; then