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.
This commit is contained in:
parent
89bed5773e
commit
c8868f1922
@ -14,11 +14,10 @@
|
|||||||
from six.moves.urllib.parse import urlencode
|
from six.moves.urllib.parse import urlencode
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
import spack.binary_distribution as bindist
|
import spack.binary_distribution as bindist
|
||||||
import spack.ci as spack_ci
|
import spack.ci as spack_ci
|
||||||
import spack.config as cfg
|
|
||||||
import spack.cmd.buildcache as buildcache
|
import spack.cmd.buildcache as buildcache
|
||||||
|
import spack.config as cfg
|
||||||
import spack.environment as ev
|
import spack.environment as ev
|
||||||
import spack.hash_types as ht
|
import spack.hash_types as ht
|
||||||
import spack.mirror
|
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
|
# 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
|
# list of known broken full hashes. This allows spack PR pipelines to
|
||||||
# avoid wasting compute cycles attempting to build those hashes.
|
# 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')
|
tty.debug('Install failed on develop')
|
||||||
if 'broken-specs-url' in gitlab_ci:
|
if 'broken-specs-url' in gitlab_ci:
|
||||||
broken_specs_url = gitlab_ci['broken-specs-url']
|
broken_specs_url = gitlab_ci['broken-specs-url']
|
||||||
|
@ -10,35 +10,36 @@
|
|||||||
"""
|
"""
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
import sys
|
import argparse
|
||||||
import re
|
import inspect
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import inspect
|
|
||||||
import pstats
|
import pstats
|
||||||
import argparse
|
import re
|
||||||
|
import signal
|
||||||
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
import warnings
|
import warnings
|
||||||
from six import StringIO
|
|
||||||
|
|
||||||
import archspec.cpu
|
import archspec.cpu
|
||||||
|
from six import StringIO
|
||||||
|
|
||||||
import llnl.util.filesystem as fs
|
import llnl.util.filesystem as fs
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
import llnl.util.tty.color as color
|
import llnl.util.tty.color as color
|
||||||
from llnl.util.tty.log import log_output
|
|
||||||
|
|
||||||
import spack
|
import spack
|
||||||
import spack.architecture
|
import spack.architecture
|
||||||
import spack.config
|
|
||||||
import spack.cmd
|
import spack.cmd
|
||||||
|
import spack.config
|
||||||
import spack.environment as ev
|
import spack.environment as ev
|
||||||
import spack.modules
|
import spack.modules
|
||||||
import spack.paths
|
import spack.paths
|
||||||
import spack.repo
|
import spack.repo
|
||||||
import spack.store
|
import spack.store
|
||||||
import spack.util.debug
|
import spack.util.debug
|
||||||
import spack.util.path
|
|
||||||
import spack.util.executable as exe
|
import spack.util.executable as exe
|
||||||
|
import spack.util.path
|
||||||
|
from llnl.util.tty.log import log_output
|
||||||
from spack.error import SpackError
|
from spack.error import SpackError
|
||||||
|
|
||||||
#: names of profile statistics
|
#: names of profile statistics
|
||||||
@ -774,22 +775,24 @@ def main(argv=None):
|
|||||||
tty.debug(e)
|
tty.debug(e)
|
||||||
e.die() # gracefully die on any SpackErrors
|
e.die() # gracefully die on any SpackErrors
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
if spack.config.get('config:debug'):
|
|
||||||
raise
|
|
||||||
tty.die(e)
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
if spack.config.get('config:debug'):
|
if spack.config.get('config:debug'):
|
||||||
raise
|
raise
|
||||||
sys.stderr.write('\n')
|
sys.stderr.write('\n')
|
||||||
tty.die("Keyboard interrupt.")
|
tty.error("Keyboard interrupt.")
|
||||||
|
return signal.SIGINT.value
|
||||||
|
|
||||||
except SystemExit as e:
|
except SystemExit as e:
|
||||||
if spack.config.get('config:debug'):
|
if spack.config.get('config:debug'):
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return e.code
|
return e.code
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
if spack.config.get('config:debug'):
|
||||||
|
raise
|
||||||
|
tty.error(e)
|
||||||
|
return 3
|
||||||
|
|
||||||
|
|
||||||
class SpackCommandError(Exception):
|
class SpackCommandError(Exception):
|
||||||
"""Raised when SpackCommand execution fails."""
|
"""Raised when SpackCommand execution fails."""
|
||||||
|
Loading…
Reference in New Issue
Block a user