mirror of
https://github.com/containers/podman.git
synced 2025-06-22 18:08:11 +08:00
bloat check: make more robust
The use of 'C^' (parent) in 'git rebase' is counterintuitive, at least to me: when C is a merge of multiple commits, rebase picks each of those commits. That probably makes good sense to a git expert, which I'm not. Solution: forget using '^', just calculate the baseline sizes by doing a checkout of the PR's parent. Also: compute PR parent using git-merge-base instead of blindly trusting $DEST_BRANCH (which may be volatile as other PRs are merged). Also: run git-rebase directly, not via make rule. That indirection is too confusing here. Signed-off-by: Ed Santiago <santiago@redhat.com>
This commit is contained in:
@ -250,16 +250,23 @@ function _run_altbuild() {
|
||||
case "$ALT_NAME" in
|
||||
*Each*)
|
||||
git fetch origin
|
||||
# The check-size script, introduced 2022-03-22 in #13518,
|
||||
# The make-and-check-size script, introduced 2022-03-22 in #13518,
|
||||
# runs 'make' (the original purpose of this check) against
|
||||
# each commit, then checks image sizes to make sure that
|
||||
# none have grown beyond a given limit. That of course
|
||||
# requires a baseline, which is why we use '^' to start
|
||||
# with the *parent* commit of this PR, not the first commit.
|
||||
# requires a baseline, so our first step is to build the
|
||||
# branch point of the PR.
|
||||
local context_dir savedhead pr_base
|
||||
context_dir=$(mktemp -d --tmpdir make-size-check.XXXXXXX)
|
||||
make build-all-new-commits \
|
||||
GIT_BASE_BRANCH=origin/"${DEST_BRANCH}^" \
|
||||
MAKE="hack/make-and-check-size $context_dir"
|
||||
savedhead=$(git rev-parse HEAD)
|
||||
# Push to PR base. First run of the script will write size files
|
||||
pr_base=$(git merge-base --fork-point origin/$DEST_BRANCH)
|
||||
git checkout $pr_base
|
||||
hack/make-and-check-size $context_dir
|
||||
# pop back to PR, and run incremental makes. Subsequent script
|
||||
# invocations will compare against original size.
|
||||
git checkout $savedhead
|
||||
git rebase $pr_base -x "hack/make-and-check-size $context_dir"
|
||||
rm -rf $context_dir
|
||||
;;
|
||||
*Windows*)
|
||||
|
Reference in New Issue
Block a user