diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2021-07-27 15:09:19 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2021-07-27 17:57:17 -0700 |
commit | 6104c315564a4be840a9704b0002bdbe004d3e07 (patch) | |
tree | 2958ceb991549e97ba87ad8ad3912b23adc7e8e4 | |
parent | af468235e2e3d53b5cd47064e1c9e20ca13eebfc (diff) | |
download | spack-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.py | 19 | ||||
-rwxr-xr-x | share/spack/qa/run-style-tests | 7 |
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 |