tests/ci-commitmessage-submodules.sh: fix for RHCI
Special-case when this script is run under RHCI, which will try to fetch the merge commit if possible. Use RHCI_COMMIT instead to refer to the actual PR/branch HEAD being evaluated. Use realpath to workaround the developer's git dir being in a symbolic link. Closes: #857 Approved by: cgwalters
This commit is contained in:
parent
a195888b0f
commit
5811d4e8a3
|
|
@ -1,5 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# Copyright 2017 Colin Walters <walters@verbum.org>
|
# Copyright 2017 Colin Walters <walters@verbum.org>
|
||||||
# Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
|
# Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
|
||||||
|
|
||||||
|
|
@ -12,6 +13,10 @@ set -euo pipefail
|
||||||
# It's very common for people to accidentally change submodules, and having this
|
# It's very common for people to accidentally change submodules, and having this
|
||||||
# requirement is a small hurdle to pass.
|
# requirement is a small hurdle to pass.
|
||||||
|
|
||||||
|
# if running under RHCI, use the branch/PR HEAD actually
|
||||||
|
# being tested rather than the merge sha
|
||||||
|
HEAD=${RHCI_COMMIT:-HEAD}
|
||||||
|
|
||||||
tmpd=$(mktemp -d)
|
tmpd=$(mktemp -d)
|
||||||
touch ${tmpd}/.tmpdir
|
touch ${tmpd}/.tmpdir
|
||||||
cleanup_tmp() {
|
cleanup_tmp() {
|
||||||
|
|
@ -22,13 +27,13 @@ cleanup_tmp() {
|
||||||
}
|
}
|
||||||
trap cleanup_tmp EXIT
|
trap cleanup_tmp EXIT
|
||||||
|
|
||||||
gitdir=$(pwd)
|
gitdir=$(realpath $(pwd))
|
||||||
# Create a temporary copy of this (using cp not git clone) so git doesn't
|
# Create a temporary copy of this (using cp not git clone) so git doesn't
|
||||||
# try to read the submodules from the Internet again. If we wanted to
|
# try to read the submodules from the Internet again. If we wanted to
|
||||||
# require a newer git, we could use `git worktree`.
|
# require a newer git, we could use `git worktree`.
|
||||||
cp -a ${gitdir} ${tmpd}/workdir
|
cp -a ${gitdir} ${tmpd}/workdir
|
||||||
cd ${tmpd}/workdir
|
cd ${tmpd}/workdir
|
||||||
git log --pretty=oneline origin/master.. | while read logline; do
|
git log --pretty=oneline origin/master..$HEAD | while read logline; do
|
||||||
commit=$(echo ${logline} | cut -f 1 -d ' ')
|
commit=$(echo ${logline} | cut -f 1 -d ' ')
|
||||||
git diff --name-only ${commit}^..${commit} > ${tmpd}/diff.txt
|
git diff --name-only ${commit}^..${commit} > ${tmpd}/diff.txt
|
||||||
git log -1 ${commit} > ${tmpd}/log.txt
|
git log -1 ${commit} > ${tmpd}/log.txt
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue