ci: Fix broken SPACK_CHECKOUT_VERSION (#38778)
This commit is contained in:
parent
d0804c44f1
commit
db879a5679
2 changed files with 13 additions and 17 deletions
|
@ -1257,20 +1257,11 @@ def main_script_replacements(cmd):
|
||||||
|
|
||||||
output_object["stages"] = stage_names
|
output_object["stages"] = stage_names
|
||||||
|
|
||||||
# Capture the version of spack used to generate the pipeline, transform it
|
# Capture the version of Spack used to generate the pipeline, that can be
|
||||||
# into a value that can be passed to "git checkout", and save it in a
|
# passed to `git checkout` for version consistency. If we aren't in a Git
|
||||||
# global yaml variable
|
# repository, presume we are a Spack release and use the Git tag instead.
|
||||||
spack_version = spack.main.get_version()
|
spack_version = spack.main.get_version()
|
||||||
version_to_clone = None
|
version_to_clone = spack.main.get_spack_commit() or f"v{spack.spack_version}"
|
||||||
v_match = re.match(r"^\d+\.\d+\.\d+$", spack_version)
|
|
||||||
if v_match:
|
|
||||||
version_to_clone = "v{0}".format(v_match.group(0))
|
|
||||||
else:
|
|
||||||
v_match = re.match(r"^[^-]+-[^-]+-([a-f\d]+)$", spack_version)
|
|
||||||
if v_match:
|
|
||||||
version_to_clone = v_match.group(1)
|
|
||||||
else:
|
|
||||||
version_to_clone = spack_version
|
|
||||||
|
|
||||||
output_object["variables"] = {
|
output_object["variables"] = {
|
||||||
"SPACK_ARTIFACTS_ROOT": rel_artifacts_root,
|
"SPACK_ARTIFACTS_ROOT": rel_artifacts_root,
|
||||||
|
|
|
@ -377,6 +377,7 @@ def test_ci_generate_with_custom_settings(
|
||||||
|
|
||||||
with ev.read("test"):
|
with ev.read("test"):
|
||||||
monkeypatch.setattr(spack.main, "get_version", lambda: "0.15.3")
|
monkeypatch.setattr(spack.main, "get_version", lambda: "0.15.3")
|
||||||
|
monkeypatch.setattr(spack.main, "get_spack_commit", lambda: "big ol commit sha")
|
||||||
ci_cmd("generate", "--output-file", outputfile)
|
ci_cmd("generate", "--output-file", outputfile)
|
||||||
|
|
||||||
with open(outputfile) as f:
|
with open(outputfile) as f:
|
||||||
|
@ -387,7 +388,7 @@ def test_ci_generate_with_custom_settings(
|
||||||
|
|
||||||
global_vars = yaml_contents["variables"]
|
global_vars = yaml_contents["variables"]
|
||||||
assert global_vars["SPACK_VERSION"] == "0.15.3"
|
assert global_vars["SPACK_VERSION"] == "0.15.3"
|
||||||
assert global_vars["SPACK_CHECKOUT_VERSION"] == "v0.15.3"
|
assert global_vars["SPACK_CHECKOUT_VERSION"] == "big ol commit sha"
|
||||||
|
|
||||||
for ci_key in yaml_contents.keys():
|
for ci_key in yaml_contents.keys():
|
||||||
ci_obj = yaml_contents[ci_key]
|
ci_obj = yaml_contents[ci_key]
|
||||||
|
@ -1196,6 +1197,7 @@ def failing_access(*args, **kwargs):
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("match_behavior", ["first", "merge"])
|
@pytest.mark.parametrize("match_behavior", ["first", "merge"])
|
||||||
|
@pytest.mark.parametrize("git_version", ["big ol commit sha", None])
|
||||||
def test_ci_generate_override_runner_attrs(
|
def test_ci_generate_override_runner_attrs(
|
||||||
tmpdir,
|
tmpdir,
|
||||||
mutable_mock_env_path,
|
mutable_mock_env_path,
|
||||||
|
@ -1204,6 +1206,7 @@ def test_ci_generate_override_runner_attrs(
|
||||||
monkeypatch,
|
monkeypatch,
|
||||||
ci_base_environment,
|
ci_base_environment,
|
||||||
match_behavior,
|
match_behavior,
|
||||||
|
git_version,
|
||||||
):
|
):
|
||||||
"""Test that we get the behavior we want with respect to the provision
|
"""Test that we get the behavior we want with respect to the provision
|
||||||
of runner attributes like tags, variables, and scripts, both when we
|
of runner attributes like tags, variables, and scripts, both when we
|
||||||
|
@ -1281,7 +1284,9 @@ def test_ci_generate_override_runner_attrs(
|
||||||
outputfile = str(tmpdir.join(".gitlab-ci.yml"))
|
outputfile = str(tmpdir.join(".gitlab-ci.yml"))
|
||||||
|
|
||||||
with ev.read("test"):
|
with ev.read("test"):
|
||||||
monkeypatch.setattr(spack.main, "get_version", lambda: "0.15.3-416-12ad69eb1")
|
monkeypatch.setattr(spack, "spack_version", "0.20.0.test0")
|
||||||
|
monkeypatch.setattr(spack.main, "get_version", lambda: "0.20.0.test0 (blah)")
|
||||||
|
monkeypatch.setattr(spack.main, "get_spack_commit", lambda: git_version)
|
||||||
ci_cmd("generate", "--output-file", outputfile)
|
ci_cmd("generate", "--output-file", outputfile)
|
||||||
|
|
||||||
with open(outputfile) as f:
|
with open(outputfile) as f:
|
||||||
|
@ -1291,9 +1296,9 @@ def test_ci_generate_override_runner_attrs(
|
||||||
assert "variables" in yaml_contents
|
assert "variables" in yaml_contents
|
||||||
global_vars = yaml_contents["variables"]
|
global_vars = yaml_contents["variables"]
|
||||||
assert "SPACK_VERSION" in global_vars
|
assert "SPACK_VERSION" in global_vars
|
||||||
assert global_vars["SPACK_VERSION"] == "0.15.3-416-12ad69eb1"
|
assert global_vars["SPACK_VERSION"] == "0.20.0.test0 (blah)"
|
||||||
assert "SPACK_CHECKOUT_VERSION" in global_vars
|
assert "SPACK_CHECKOUT_VERSION" in global_vars
|
||||||
assert global_vars["SPACK_CHECKOUT_VERSION"] == "12ad69eb1"
|
assert global_vars["SPACK_CHECKOUT_VERSION"] == git_version or "v0.20.0.test0"
|
||||||
|
|
||||||
for ci_key in yaml_contents.keys():
|
for ci_key in yaml_contents.keys():
|
||||||
if ci_key.startswith("a"):
|
if ci_key.startswith("a"):
|
||||||
|
|
Loading…
Reference in a new issue