summaryrefslogtreecommitdiff
path: root/test/buildah-bud/make-new-buildah-diffs
blob: 11987e37609253c5be6314449860c4162bd74290 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/bash
#
# This script is intended to help developers get buildah-tests-under-podman
# working again in case of failure.
#
ME=$(basename $0)

die() {
    echo "$ME: $*" >&2
    exit 1
}

# Confirm that we're in a test-buildah* subdir of podman
whereami=$(basename $(pwd))
if [[ ! $whereami =~ test-buildah-v ]]; then
    die "Please run me while cd'ed to a test-buildah-vN.M directory"
fi

# FIXME: check that git repo is buildah
git remote -v | grep -q [BUILDAHREPO] \
    || die "This does not look like a buildah repo (git remote -v)"

# We could do the commit automatically, but it's prudent to require human
# involvement.
modified=$(git status --untracked=no --porcelain)
if [[ -n "$modified" ]]; then
    echo $modified
    die "Please commit your changes: git commit --amend --all"
fi

# Remove any 00??-*.patch files
rm -f 0001-*.patch

# Check count of commits, barf if need to squash
n_commits=$(git log --pretty=format:%h [BASETAG]..HEAD | wc -l)
if [[ $n_commits -gt 1 ]]; then
    die "Please squash your commits"
fi

# Scope check: make sure the only files changed is helpers.bash
changes=$(git diff --name-status [BASETAG]..HEAD | egrep -v '\stests/helpers.bash')
if [[ -n "$changes" ]]; then
    echo $changes
    die "Found modified files other than 'tests/helpers.bash'"
fi

###############################################################################
# All right - things look good. Generate the patch, and copy it into place.

git format-patch [BASETAG]

# Once again, make sure there's exactly one and only one commit
shopt -s nullglob
patch2=$(echo 0002-*.patch)
if [[ -n "$patch2" ]]; then
    die "Internal error: I thought I checked for squashed commits, but still see $patch2"
fi

# All looks good. Now write that patch into its proper place in the
# podman repo. The sed and tac mess strips trailing whitespace and
# empty lines; we need to do this to pass github CI checks.
sed -e 's/ \+$//' <0001-*.patch |\
    tac | sed -e '/./,$!d' | tac >| ../test/buildah-bud/buildah-tests.diff