summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/ci.py7
-rw-r--r--lib/spack/spack/cmd/ci.py13
-rw-r--r--lib/spack/spack/test/cmd/ci.py10
3 files changed, 17 insertions, 13 deletions
diff --git a/lib/spack/spack/ci.py b/lib/spack/spack/ci.py
index e966a5a970..3e5e134e05 100644
--- a/lib/spack/spack/ci.py
+++ b/lib/spack/spack/ci.py
@@ -549,9 +549,8 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
generate_job_name = os.environ.get('CI_JOB_NAME', None)
parent_pipeline_id = os.environ.get('CI_PIPELINE_ID', None)
- is_pr_pipeline = (
- os.environ.get('SPACK_IS_PR_PIPELINE', '').lower() == 'true'
- )
+ spack_pipeline_type = os.environ.get('SPACK_PIPELINE_TYPE', None)
+ is_pr_pipeline = spack_pipeline_type == 'spack_pull_request'
spack_pr_branch = os.environ.get('SPACK_PR_BRANCH', None)
pr_mirror_url = None
@@ -1073,7 +1072,7 @@ def generate_gitlab_ci_yaml(env, print_summary, output_file,
'SPACK_JOB_LOG_DIR': rel_job_log_dir,
'SPACK_JOB_REPRO_DIR': rel_job_repro_dir,
'SPACK_LOCAL_MIRROR_DIR': rel_local_mirror_dir,
- 'SPACK_IS_PR_PIPELINE': str(is_pr_pipeline)
+ 'SPACK_PIPELINE_TYPE': str(spack_pipeline_type)
}
if pr_mirror_url:
diff --git a/lib/spack/spack/cmd/ci.py b/lib/spack/spack/cmd/ci.py
index 1bc73ec452..1f87924538 100644
--- a/lib/spack/spack/cmd/ci.py
+++ b/lib/spack/spack/cmd/ci.py
@@ -196,8 +196,7 @@ def ci_rebuild(args):
compiler_action = get_env_var('SPACK_COMPILER_ACTION')
cdash_build_name = get_env_var('SPACK_CDASH_BUILD_NAME')
related_builds = get_env_var('SPACK_RELATED_BUILDS_CDASH')
- pr_env_var = get_env_var('SPACK_IS_PR_PIPELINE')
- dev_env_var = get_env_var('SPACK_IS_DEVELOP_PIPELINE')
+ spack_pipeline_type = get_env_var('SPACK_PIPELINE_TYPE')
pr_mirror_url = get_env_var('SPACK_PR_MIRROR_URL')
remote_mirror_url = get_env_var('SPACK_REMOTE_MIRROR_URL')
@@ -242,8 +241,11 @@ def ci_rebuild(args):
# Is this a pipeline run on a spack PR or a merge to develop? It might
# be neither, e.g. a pipeline run on some environment repository.
- spack_is_pr_pipeline = True if pr_env_var == 'True' else False
- spack_is_develop_pipeline = True if dev_env_var == 'True' else False
+ spack_is_pr_pipeline = spack_pipeline_type == 'spack_pull_request'
+ spack_is_develop_pipeline = spack_pipeline_type == 'spack_protected_branch'
+
+ tty.debug('Pipeline type - PR: {0}, develop: {1}'.format(
+ spack_is_pr_pipeline, spack_is_develop_pipeline))
# Figure out what is our temporary storage mirror: Is it artifacts
# buildcache? Or temporary-storage-url-prefix? In some cases we need to
@@ -495,10 +497,13 @@ def ci_rebuild(args):
# 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:
+ tty.debug('Install failed on develop')
if 'broken-specs-url' in gitlab_ci:
broken_specs_url = gitlab_ci['broken-specs-url']
dev_fail_hash = job_spec.full_hash()
broken_spec_path = url_util.join(broken_specs_url, dev_fail_hash)
+ tty.msg('Reporting broken develop build as: {0}'.format(
+ broken_spec_path))
tmpdir = tempfile.mkdtemp()
empty_file_path = os.path.join(tmpdir, 'empty.txt')
diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py
index cdc5247799..b267596a72 100644
--- a/lib/spack/spack/test/cmd/ci.py
+++ b/lib/spack/spack/test/cmd/ci.py
@@ -612,14 +612,14 @@ spack:
outputfile = str(tmpdir.join('.gitlab-ci.yml'))
with ev.read('test'):
- os.environ['SPACK_IS_PR_PIPELINE'] = 'True'
+ os.environ['SPACK_PIPELINE_TYPE'] = 'spack_pull_request'
os.environ['SPACK_PR_BRANCH'] = 'fake-test-branch'
monkeypatch.setattr(
ci, 'SPACK_PR_MIRRORS_ROOT_URL', r"file:///fake/mirror")
try:
ci_cmd('generate', '--output-file', outputfile)
finally:
- del os.environ['SPACK_IS_PR_PIPELINE']
+ del os.environ['SPACK_PIPELINE_TYPE']
del os.environ['SPACK_PR_BRANCH']
with open(outputfile) as f:
@@ -630,8 +630,8 @@ spack:
assert('variables' in yaml_contents)
pipeline_vars = yaml_contents['variables']
- assert('SPACK_IS_PR_PIPELINE' in pipeline_vars)
- assert(pipeline_vars['SPACK_IS_PR_PIPELINE'] == 'True')
+ assert('SPACK_PIPELINE_TYPE' in pipeline_vars)
+ assert(pipeline_vars['SPACK_PIPELINE_TYPE'] == 'spack_pull_request')
def test_ci_generate_with_external_pkg(tmpdir, mutable_mock_env_path,
@@ -779,7 +779,7 @@ spack:
set_env_var('SPACK_CDASH_BUILD_NAME', '(specs) archive-files')
set_env_var('SPACK_RELATED_BUILDS_CDASH', '')
set_env_var('SPACK_REMOTE_MIRROR_URL', mirror_url)
- set_env_var('SPACK_IS_DEVELOP_PIPELINE', 'True')
+ set_env_var('SPACK_PIPELINE_TYPE', 'spack_protected_branch')
ci_cmd('rebuild', fail_on_error=False)