-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
workflows: rebase code on pull_request_target
The e2e_on_pull workflow run on pull_request_target event that uses the the merge branch. Unlike the pull_request event, the merge branch is not rebased on top of the target branch (usually 'main'). In simple terms, the e2e_on_pull workflow does not automatically rebase the code so that changes merged on 'main' after the pull request creation are disregarded. This added a renamed (to ci-helper.sh) and modified version of https://github.com/kata-containers/kata-containers/blob/main/tests/git-helper.sh that's called after 'actions/checkout' step to rebase the code atop of 'main'. Because the touched workflows may be called on different workflows and events (e.g. release and dispatch_workflow), the rebase step is guarded by `if: github.event_name == 'pull_request_target'` to only run on pull_request_target triggered workflows. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
- Loading branch information
Showing
7 changed files
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Copyright (c) 2023 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
set -o errexit | ||
set -o nounset | ||
set -o pipefail | ||
|
||
TARGET_BRANCH=${TARGET_BRANCH:-main} | ||
|
||
function rebase_atop_of_the_latest_target_branch() { | ||
if [ -n "${TARGET_BRANCH}" ]; then | ||
echo "Rebasing atop of the latest ${TARGET_BRANCH}" | ||
# Recover from any previous rebase left halfway | ||
git rebase --abort 2> /dev/null || true | ||
if ! git rebase "origin/${TARGET_BRANCH}"; then | ||
# if GITHUB_WORKSPACE is defined and an architecture is not equal to x86_64 | ||
# (mostly self-hosted runners), then remove the repository | ||
if [ -n "${GITHUB_WORKSPACE:-}" ] && [ "$(uname -m)" != "x86_64" ]; then | ||
echo "Rebase failed, cleaning up a repository for self-hosted runners and exiting" | ||
cd "${GITHUB_WORKSPACE}"/.. | ||
sudo rm -rf "${GITHUB_WORKSPACE}" | ||
else | ||
echo "Rebase failed, exiting" | ||
fi | ||
exit 1 | ||
fi | ||
fi | ||
} | ||
|
||
function main() { | ||
action="${1:-}" | ||
|
||
case "${action}" in | ||
rebase-atop-of-the-latest-target-branch) rebase_atop_of_the_latest_target_branch;; | ||
*) >&2 echo "Invalid argument"; exit 2 ;; | ||
esac | ||
} | ||
|
||
main "$@" |