summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorScott Wittenburg <scott.wittenburg@kitware.com>2023-04-14 09:03:12 -0600
committerGitHub <noreply@github.com>2023-04-14 09:03:12 -0600
commitbfa94c57812530c8d0c46d14905371879307f571 (patch)
tree22ba560a58806bdaa5ac3e8b6ec975fc81b12f03 /lib
parent3710774d0271abb143c23abf8c6c0d6f4a7f17a9 (diff)
downloadspack-bfa94c57812530c8d0c46d14905371879307f571.tar.gz
spack-bfa94c57812530c8d0c46d14905371879307f571.tar.bz2
spack-bfa94c57812530c8d0c46d14905371879307f571.tar.xz
spack-bfa94c57812530c8d0c46d14905371879307f571.zip
gitlab ci: Better tagging of "service" jobs (#36846)
- Tag non-rebuild jobs to target a cheaper (and more highly available) subset of runners. - Add missing resource requests to these jobs as well.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/test/cmd/ci.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/spack/spack/test/cmd/ci.py b/lib/spack/spack/test/cmd/ci.py
index 44f195bc3b..4b6347e2d5 100644
--- a/lib/spack/spack/test/cmd/ci.py
+++ b/lib/spack/spack/test/cmd/ci.py
@@ -2411,3 +2411,53 @@ def test_gitlab_ci_update(
ci_root = yaml_contents["spack"]["ci"]
assert "pipeline-gen" in ci_root
+
+
+def test_gitlab_config_scopes(
+ tmpdir, working_env, mutable_mock_env_path, mock_packages, ci_base_environment
+):
+ """Test pipeline generation with real configs included"""
+ configs_path = os.path.join(spack_paths.share_path, "gitlab", "cloud_pipelines", "configs")
+ filename = str(tmpdir.join("spack.yaml"))
+ with open(filename, "w") as f:
+ f.write(
+ """\
+spack:
+ config:
+ install_tree: {0}
+ include: [{1}]
+ view: false
+ specs:
+ - flatten-deps
+ mirrors:
+ some-mirror: https://my.fake.mirror
+ ci:
+ pipeline-gen:
+ - build-job:
+ image: "ecpe4s/ubuntu20.04-runner-x86_64:2023-01-01"
+ tags: ["some_tag"]
+""".format(
+ tmpdir.strpath, configs_path
+ )
+ )
+
+ with tmpdir.as_cwd():
+ env_cmd("create", "test", "./spack.yaml")
+ outputfile = str(tmpdir.join(".gitlab-ci.yml"))
+
+ with ev.read("test"):
+ ci_cmd("generate", "--output-file", outputfile)
+
+ with open(outputfile) as f:
+ contents = f.read()
+ yaml_contents = syaml.load(contents)
+
+ assert "rebuild-index" in yaml_contents
+ rebuild_job = yaml_contents["rebuild-index"]
+ assert "tags" in rebuild_job
+ assert "variables" in rebuild_job
+ rebuild_tags = rebuild_job["tags"]
+ rebuild_vars = rebuild_job["variables"]
+ assert all([t in rebuild_tags for t in ["spack", "service"]])
+ expected_vars = ["CI_JOB_SIZE", "KUBERNETES_CPU_REQUEST", "KUBERNETES_MEMORY_REQUEST"]
+ assert all([v in rebuild_vars for v in expected_vars])