summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-07-27 15:09:19 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2021-07-27 17:57:17 -0700
commit6104c315564a4be840a9704b0002bdbe004d3e07 (patch)
tree2958ceb991549e97ba87ad8ad3912b23adc7e8e4
parentaf468235e2e3d53b5cd47064e1c9e20ca13eebfc (diff)
downloadspack-6104c315564a4be840a9704b0002bdbe004d3e07.tar.gz
spack-6104c315564a4be840a9704b0002bdbe004d3e07.tar.bz2
spack-6104c315564a4be840a9704b0002bdbe004d3e07.tar.xz
spack-6104c315564a4be840a9704b0002bdbe004d3e07.zip
bugfix: be careful about GITHUB_BASE_REF in `spack style`
`spack style` previously used a Travis CI variable to figure out what the base branch of a PR was, and this was apparently also set on `develop`. We switched to `GITHUB_BASE_REF` to support GitHub Actions, but it looks like this is set to `""` in pushes to develop, so `spack style` breaks there. This PR does two things: - [x] Remove `GITHUB_BASE_REF` knowledge from `spack style` entirely - [x] Handle `GITHUB_BASE_REF` in style scripts instead, and explicitly pass the base ref if it is present, but don't otherwise. This makes `spack style` *not* dependent on the environment and fixes handling of the base branch in the right place.
-rw-r--r--lib/spack/spack/cmd/style.py19
-rwxr-xr-xshare/spack/qa/run-style-tests7
2 files changed, 17 insertions, 9 deletions
diff --git a/lib/spack/spack/cmd/style.py b/lib/spack/spack/cmd/style.py
index 473827366b..b296126116 100644
--- a/lib/spack/spack/cmd/style.py
+++ b/lib/spack/spack/cmd/style.py
@@ -79,17 +79,20 @@ class tool(object):
return fun
-def changed_files(base=None, untracked=True, all_files=False, root=None):
- """Get list of changed files in the Spack repository."""
+def changed_files(base="develop", untracked=True, all_files=False, root=None):
+ """Get list of changed files in the Spack repository.
+
+ Arguments:
+ base (str): name of base branch to evaluate differences with.
+ untracked (bool): include untracked files in the list.
+ all_files (bool): list all files in the repository.
+ root (str): use this directory instead of the Spack prefix.
+ """
if root is None:
root = spack.paths.prefix
git = which("git", required=True)
- # GITHUB_BASE_REF is set to the base branch for pull request actions
- if base is None:
- base = os.environ.get("GITHUB_BASE_REF", "develop")
-
# ensure base is in the repo
git("show-ref", "--verify", "--quiet", "refs/heads/%s" % base,
fail_on_error=False)
@@ -147,8 +150,8 @@ def setup_parser(subparser):
"-b",
"--base",
action="store",
- default=None,
- help="select base branch for collecting list of modified files",
+ default="develop",
+ help="branch to compare against to determine changed files (default: develop)",
)
subparser.add_argument(
"-a",
diff --git a/share/spack/qa/run-style-tests b/share/spack/qa/run-style-tests
index 86abeeeac1..72c47ff055 100755
--- a/share/spack/qa/run-style-tests
+++ b/share/spack/qa/run-style-tests
@@ -16,8 +16,13 @@
#
. "$(dirname $0)/setup.sh"
+BASE=""
+if [ -n "$GITHUB_BASE_REF" ]; then
+ BASE="--base ${GITHUB_BASE_REF}"
+fi
+
# verify that the code style is correct
-spack style --root-relative
+spack style --root-relative $BASE
# verify that the license headers are present
spack license verify