summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorZack Galbreath <zack.galbreath@kitware.com>2021-06-30 14:16:15 -0400
committerGitHub <noreply@github.com>2021-06-30 12:16:15 -0600
commitc8868f1922c91fb7d8635ed88a06159857a7cae6 (patch)
tree9b31d3cf8f94fdb33d5e8655521ca4f665943455 /lib
parent89bed5773e45fe62741d806473dd6d8784508751 (diff)
downloadspack-c8868f1922c91fb7d8635ed88a06159857a7cae6.tar.gz
spack-c8868f1922c91fb7d8635ed88a06159857a7cae6.tar.bz2
spack-c8868f1922c91fb7d8635ed88a06159857a7cae6.tar.xz
spack-c8868f1922c91fb7d8635ed88a06159857a7cae6.zip
ci: only write to broken-specs list on SpackError (#24618)
ci: only write to broken-specs list on SpackError Only write to the broken-specs list when `spack install` raises a SpackError, instead of writing to this list unnecessarily when infrastructure-related problems prevent a develop job from completing successfully.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/cmd/ci.py5
-rw-r--r--lib/spack/spack/main.py33
2 files changed, 20 insertions, 18 deletions
diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py
index bc0c1685ae..804cd3ab80 100644
--- a/lib/spack/spack/cmd/ci.py
+++ b/lib/spack/spack/cmd/ci.py
@@ -14,11 +14,10 @@ import tempfile
from six.moves.urllib.parse import urlencode
import llnl.util.tty as tty
-
import spack.binary_distribution as bindist
import spack.ci as spack_ci
-import spack.config as cfg
import spack.cmd.buildcache as buildcache
+import spack.config as cfg
import spack.environment as ev
import spack.hash_types as ht
import spack.mirror
@@ -492,7 +491,7 @@ def ci_rebuild(args):
# If a spec fails to build in a spack develop pipeline, we add it to a
# list of known broken full hashes. This allows spack PR pipelines to
# avoid wasting compute cycles attempting to build those hashes.
- if install_exit_code != 0 and spack_is_develop_pipeline:
+ if install_exit_code == 1 and spack_is_develop_pipeline:
tty.debug('Install failed on develop')
if 'broken-specs-url' in gitlab_ci:
broken_specs_url = gitlab_ci['broken-specs-url']
diff --git a/lib/spack/spack/main.py b/lib/spack/spack/main.py
index 18a95bb969..c088f068f6 100644
--- a/lib/spack/spack/main.py
+++ b/lib/spack/spack/main.py
@@ -10,35 +10,36 @@ after the system path is set up.
"""
from __future__ import print_function
-import sys
-import re
+import argparse
+import inspect
import os
import os.path
-import inspect
import pstats
-import argparse
+import re
+import signal
+import sys
import traceback
import warnings
-from six import StringIO
import archspec.cpu
+from six import StringIO
+
import llnl.util.filesystem as fs
import llnl.util.tty as tty
import llnl.util.tty.color as color
-from llnl.util.tty.log import log_output
-
import spack
import spack.architecture
-import spack.config
import spack.cmd
+import spack.config
import spack.environment as ev
import spack.modules
import spack.paths
import spack.repo
import spack.store
import spack.util.debug
-import spack.util.path
import spack.util.executable as exe
+import spack.util.path
+from llnl.util.tty.log import log_output
from spack.error import SpackError
#: names of profile statistics
@@ -774,22 +775,24 @@ def main(argv=None):
tty.debug(e)
e.die() # gracefully die on any SpackErrors
- except Exception as e:
- if spack.config.get('config:debug'):
- raise
- tty.die(e)
-
except KeyboardInterrupt:
if spack.config.get('config:debug'):
raise
sys.stderr.write('\n')
- tty.die("Keyboard interrupt.")
+ tty.error("Keyboard interrupt.")
+ return signal.SIGINT.value
except SystemExit as e:
if spack.config.get('config:debug'):
traceback.print_exc()
return e.code
+ except Exception as e:
+ if spack.config.get('config:debug'):
+ raise
+ tty.error(e)
+ return 3
+
class SpackCommandError(Exception):
"""Raised when SpackCommand execution fails."""