Skip to content

Add (exclude_)where args to workload directive [AI] - #1642

Merged
rfbgo merged 1 commit into
GoogleCloudPlatform:developfrom
douglasjacobsen:workload-filters
Aug 3, 2026
Merged

Add (exclude_)where args to workload directive [AI]#1642
rfbgo merged 1 commit into
GoogleCloudPlatform:developfrom
douglasjacobsen:workload-filters

Add (exclude_)where args to workload directive

53a52d7
Select commit
Loading
Failed to load commit list.
Google Cloud Build / PR-Unit-Tests-rockylinux8-v0-21-2spack-3-12-0python (ramble-eng) succeeded Aug 1, 2026 in 27m 19s

Summary

Build Information

Trigger PR-Unit-Tests-rockylinux8-v0-21-2spack-3-12-0python
Build 1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8
Start 2026-08-01T09:01:13-07:00
Duration 26m23.374s
Status SUCCESS

Steps

Step Status Duration
gcr.io/cloud-builders/gcloud SUCCESS 3.151s
ramble-clone SUCCESS 14.246s
ramble-unit-tests SUCCESS 26m0.988s

Details

starting build "1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8"

FETCHSOURCE
From https://github.com/GoogleCloudPlatform/ramble
 * branch            53a52d74c59a1a6e8ab0884e932a4f5ccb1007d1 -> FETCH_HEAD
HEAD is now at 53a52d7 Add (exclude_)where args to workload directive
GitCommit:
53a52d74c59a1a6e8ab0884e932a4f5ccb1007d1
BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #0: Current Build ID: 1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8
Step #0: Filtering for tag: PR-Unit-Tests-rockylinux8-v0-21-2spack-3-12-0python-1642 in project: ramble-eng
Step #0: ERROR: (gcloud.builds.describe) NOT_FOUND: Requested entity was not found. This command is authenticated as 993292483723@cloudbuild.gserviceaccount.com which is the active account specified by the [core/account] property.
Step #0: Warning: Could not retrieve creation time for build 1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8. Skipping cancellation of older builds.
Finished Step #0
Starting Step #1 - "ramble-clone"
Step #1 - "ramble-clone": Already have image (with digest): gcr.io/cloud-builders/git
Step #1 - "ramble-clone": From https://github.com/GoogleCloudPlatform/ramble
Step #1 - "ramble-clone":  * [new branch]          develop    -> origin/develop
Step #1 - "ramble-clone":  * [new branch]          gh-pages   -> origin/gh-pages
Step #1 - "ramble-clone":  * [new branch]          main       -> origin/main
Step #1 - "ramble-clone":  * [new tag]             v0.6.0     -> v0.6.0
Step #1 - "ramble-clone":  * [new tag]             v0.1.0     -> v0.1.0
Step #1 - "ramble-clone":  * [new tag]             v0.2.0     -> v0.2.0
Step #1 - "ramble-clone":  * [new tag]             v0.2.1     -> v0.2.1
Step #1 - "ramble-clone":  * [new tag]             v0.3.0     -> v0.3.0
Step #1 - "ramble-clone":  * [new tag]             v0.4.0     -> v0.4.0
Step #1 - "ramble-clone":  * [new tag]             v0.5.0     -> v0.5.0
Finished Step #1 - "ramble-clone"
Starting Step #2 - "ramble-unit-tests"
Step #2 - "ramble-unit-tests": Pulling image: us-central1-docker.pkg.dev/ramble-eng/ramble-repo/ramble-rockylinux-8-spackv0.21.2-python3.12.0:latest
Step #2 - "ramble-unit-tests": latest: Pulling from ramble-eng/ramble-repo/ramble-rockylinux-8-spackv0.21.2-python3.12.0
Step #2 - "ramble-unit-tests": 9088cdb84e39: Pulling fs layer
Step #2 - "ramble-unit-tests": 3405e3485f7d: Pulling fs layer
Step #2 - "ramble-unit-tests": 9088cdb84e39: Verifying Checksum
Step #2 - "ramble-unit-tests": 9088cdb84e39: Download complete
Step #2 - "ramble-unit-tests": 9088cdb84e39: Pull complete
Step #2 - "ramble-unit-tests": 3405e3485f7d: Verifying Checksum
Step #2 - "ramble-unit-tests": 3405e3485f7d: Download complete
Step #2 - "ramble-unit-tests": 3405e3485f7d: Pull complete
Step #2 - "ramble-unit-tests": Digest: sha256:30818514ac5eef63236b3acabfd0478205d985bfe0c4ff77b56b8e7aa4c1db6c
Step #2 - "ramble-unit-tests": Status: Downloaded newer image for us-central1-docker.pkg.dev/ramble-eng/ramble-repo/ramble-rockylinux-8-spackv0.21.2-python3.12.0:latest
Step #2 - "ramble-unit-tests": us-central1-docker.pkg.dev/ramble-eng/ramble-repo/ramble-rockylinux-8-spackv0.21.2-python3.12.0:latest
Step #2 - "ramble-unit-tests": branch 'develop' set up to track 'origin/develop'.
Step #2 - "ramble-unit-tests": Ignoring graphlib-backport: markers 'python_version < "3.9"' don't match your environment
Step #2 - "ramble-unit-tests": Ignoring urllib3: markers 'python_version <= "3.6"' don't match your environment
Step #2 - "ramble-unit-tests": Ignoring protobuf: markers 'python_version <= "3.6"' don't match your environment
Step #2 - "ramble-unit-tests": Ignoring pyarrow: markers 'python_version <= "3.6"' don't match your environment
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-cloud-storage in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 1)) (3.13.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-api-core in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 2)) (2.33.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: protobuf in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 5)) (7.35.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-cloud-bigquery in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 8)) (3.42.3)
Step #2 - "ramble-unit-tests": Requirement already satisfied: tqdm in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 9)) (4.70.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: deprecation in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 10)) (2.1.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pandas in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 11)) (3.0.5)
Step #2 - "ramble-unit-tests": Requirement already satisfied: matplotlib in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 12)) (3.11.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: setuptools in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 13)) (83.0.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: scipy in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 14)) (1.18.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: types-PyYAML in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 15)) (6.0.12.20260724)
Step #2 - "ramble-unit-tests": Requirement already satisfied: distro in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements.txt (line 16)) (1.9.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pytest in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 2)) (9.1.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pytest-benchmark in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 3)) (5.2.3)
Step #2 - "ramble-unit-tests": Requirement already satisfied: flake8 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 4)) (7.3.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: black in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 5)) (25.12.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: coverage in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 6)) (7.13.5)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pre-commit in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 7)) (4.6.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pytest-xdist in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 8)) (3.8.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pytest-clarity in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 9)) (1.0.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: line_profiler in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 10)) (5.0.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: isort in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 11)) (7.0.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: codecov-cli in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 12)) (11.2.5)
Step #2 - "ramble-unit-tests": Requirement already satisfied: mypy in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 13)) (2.3.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: ruff in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from -r /workspace/requirements-dev.txt (line 14)) (0.16.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: mccabe<0.8.0,>=0.7.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from flake8->-r /workspace/requirements-dev.txt (line 4)) (0.7.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pycodestyle<2.15.0,>=2.14.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from flake8->-r /workspace/requirements-dev.txt (line 4)) (2.14.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pyflakes<3.5.0,>=3.4.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from flake8->-r /workspace/requirements-dev.txt (line 4)) (3.4.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: click>=8.0.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (8.2.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: mypy-extensions>=0.4.3 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (1.1.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: packaging>=22.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (26.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pathspec>=0.9.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (1.1.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: platformdirs>=2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (4.11.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pytokens>=0.3.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from black->-r /workspace/requirements-dev.txt (line 5)) (0.4.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: typing_extensions in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from line_profiler->-r /workspace/requirements-dev.txt (line 10)) (4.16.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: ijson==3.* in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (3.5.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: PyYAML==6.* in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (6.0.3)
Step #2 - "ramble-unit-tests": Requirement already satisfied: responses==0.21.* in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (0.21.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: sentry-sdk==2.* in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (2.66.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: test-results-parser==0.6.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (0.6.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: librt>=0.13.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from mypy->-r /workspace/requirements-dev.txt (line 13)) (0.13.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: ast-serialize<1.0.0,>=0.6.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from mypy->-r /workspace/requirements-dev.txt (line 13)) (0.6.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: requests<3.0,>=2.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from responses==0.21.*->codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (2.34.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: urllib3>=1.25.10 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from responses==0.21.*->codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (2.7.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: certifi in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from sentry-sdk==2.*->codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (2026.7.22)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-auth<3.0.0,>=2.26.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-cloud-storage->-r /workspace/requirements.txt (line 1)) (2.56.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-cloud-core<3.0.0,>=2.4.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-cloud-storage->-r /workspace/requirements.txt (line 1)) (2.6.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-resumable-media<3.0.0,>=2.7.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-cloud-storage->-r /workspace/requirements.txt (line 1)) (2.10.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: google-crc32c<2.0.0,>=1.6.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-cloud-storage->-r /workspace/requirements.txt (line 1)) (1.8.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: googleapis-common-protos<2.0.0,>=1.63.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-api-core->-r /workspace/requirements.txt (line 2)) (1.75.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: proto-plus<2.0.0,>=1.24.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-api-core->-r /workspace/requirements.txt (line 2)) (1.28.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: python-dateutil<3.0.0,>=2.8.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-cloud-bigquery->-r /workspace/requirements.txt (line 8)) (2.9.0.post0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: numpy>=1.26.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pandas->-r /workspace/requirements.txt (line 11)) (2.5.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: contourpy>=1.0.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (1.3.3)
Step #2 - "ramble-unit-tests": Requirement already satisfied: cycler>=0.10 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (0.12.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: fonttools>=4.28.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (4.63.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: kiwisolver>=1.3.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (1.5.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pillow>=9 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (12.3.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pyparsing>=3 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from matplotlib->-r /workspace/requirements.txt (line 12)) (3.3.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: iniconfig>=1.0.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest->-r /workspace/requirements-dev.txt (line 2)) (2.3.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pluggy<2,>=1.5 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest->-r /workspace/requirements-dev.txt (line 2)) (1.6.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pygments>=2.7.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest->-r /workspace/requirements-dev.txt (line 2)) (2.20.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: py-cpuinfo in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest-benchmark->-r /workspace/requirements-dev.txt (line 3)) (9.0.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: cfgv>=2.0.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pre-commit->-r /workspace/requirements-dev.txt (line 7)) (3.5.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: identify>=1.0.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pre-commit->-r /workspace/requirements-dev.txt (line 7)) (2.6.19)
Step #2 - "ramble-unit-tests": Requirement already satisfied: nodeenv>=0.11.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pre-commit->-r /workspace/requirements-dev.txt (line 7)) (1.10.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: virtualenv>=20.10.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pre-commit->-r /workspace/requirements-dev.txt (line 7)) (21.7.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: execnet>=2.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest-xdist->-r /workspace/requirements-dev.txt (line 8)) (2.1.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: rich>=8.0.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest-clarity->-r /workspace/requirements-dev.txt (line 9)) (15.0.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pprintpp>=0.4.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pytest-clarity->-r /workspace/requirements-dev.txt (line 9)) (0.4.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: grpcio<2.0.0,>=1.41.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-api-core->-r /workspace/requirements.txt (line 2)) (1.83.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: grpcio-status<2.0.0,>=1.41.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-api-core->-r /workspace/requirements.txt (line 2)) (1.83.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pyasn1-modules>=0.2.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-auth<3.0.0,>=2.26.1->google-cloud-storage->-r /workspace/requirements.txt (line 1)) (0.4.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: cryptography>=38.0.3 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from google-auth<3.0.0,>=2.26.1->google-cloud-storage->-r /workspace/requirements.txt (line 1)) (50.0.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: six>=1.5 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from python-dateutil<3.0.0,>=2.8.2->google-cloud-bigquery->-r /workspace/requirements.txt (line 8)) (1.17.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: charset_normalizer<4,>=2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from requests<3.0,>=2.0->responses==0.21.*->codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (3.4.9)
Step #2 - "ramble-unit-tests": Requirement already satisfied: idna<4,>=2.5 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from requests<3.0,>=2.0->responses==0.21.*->codecov-cli->-r /workspace/requirements-dev.txt (line 12)) (3.18)
Step #2 - "ramble-unit-tests": Requirement already satisfied: markdown-it-py>=2.2.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from rich>=8.0.0->pytest-clarity->-r /workspace/requirements-dev.txt (line 9)) (4.2.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: distlib<1,>=0.3.7 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from virtualenv>=20.10.0->pre-commit->-r /workspace/requirements-dev.txt (line 7)) (0.4.3)
Step #2 - "ramble-unit-tests": Requirement already satisfied: filelock<4,>=3.24.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from virtualenv>=20.10.0->pre-commit->-r /workspace/requirements-dev.txt (line 7)) (3.32.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: python-discovery>=1.4.2 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from virtualenv>=20.10.0->pre-commit->-r /workspace/requirements-dev.txt (line 7)) (1.5.1)
Step #2 - "ramble-unit-tests": Requirement already satisfied: cffi>=2.0.0 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from cryptography>=38.0.3->google-auth<3.0.0,>=2.26.1->google-cloud-storage->-r /workspace/requirements.txt (line 1)) (2.1.0)
Step #2 - "ramble-unit-tests": Requirement already satisfied: mdurl~=0.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=8.0.0->pytest-clarity->-r /workspace/requirements-dev.txt (line 9)) (0.1.2)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pyasn1<0.7.0,>=0.6.1 in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from pyasn1-modules>=0.2.1->google-auth<3.0.0,>=2.26.1->google-cloud-storage->-r /workspace/requirements.txt (line 1)) (0.6.4)
Step #2 - "ramble-unit-tests": Requirement already satisfied: pycparser in /opt/spack/opt/spack/linux-rocky8-broadwell/gcc-8.5.0/python-3.12.0-7mjdiu7e5yrrglusup3krfjo7xeisnbp/lib/python3.12/site-packages (from cffi>=2.0.0->cryptography>=38.0.3->google-auth<3.0.0,>=2.26.1->google-cloud-storage->-r /workspace/requirements.txt (line 1)) (3.0)
Step #2 - "ramble-unit-tests": WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": [notice] A new release of pip is available: 23.1.2 -> 26.2
Step #2 - "ramble-unit-tests": [notice] To update, run: python3.12 -m pip install --upgrade pip
Step #2 - "ramble-unit-tests": Spack version is 0.21.2 (89319413d5d90caa9bea98e3419f8aeab61a2a0d)
Step #2 - "ramble-unit-tests": Python version is Python 3.12.0
Step #2 - "ramble-unit-tests": Dependencies found.
Step #2 - "ramble-unit-tests": usage: ramble [-hkVd] [--color {always,never,auto}] COMMAND ...
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": A flexible benchmark experiment manager.
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": These are common ramble commands:
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": application dev:
Step #2 - "ramble-unit-tests":   edit                  open application files in $EDITOR
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": query applications:
Step #2 - "ramble-unit-tests":   list                  list and search available objects
Step #2 - "ramble-unit-tests":   info                  get detailed information on a particular object
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": data:
Step #2 - "ramble-unit-tests":   data (zeppelin)       manage data and databases
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": results:
Step #2 - "ramble-unit-tests":   results               take actions on experiment results
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": workspaces:
Step #2 - "ramble-unit-tests":   deployment            manage workspace deployments
Step #2 - "ramble-unit-tests":   on                    "And now's the time, the time is now" (execute workspace experiments)
Step #2 - "ramble-unit-tests":   workspace             manage experiment workspaces
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": options:
Step #2 - "ramble-unit-tests":   --color {always,never,auto}
Step #2 - "ramble-unit-tests":                         when to colorize output (default: auto)
Step #2 - "ramble-unit-tests":   -V, --version         show version number and exit
Step #2 - "ramble-unit-tests":   -d, --debug           write out debug messages (more d's for more verbosity: -d, -dd, -ddd, etc.)
Step #2 - "ramble-unit-tests":   -h, --help            show this help message and exit
Step #2 - "ramble-unit-tests":   -k, --insecure        do not check ssl certificates when downloading
Step #2 - "ramble-unit-tests": 
Step #2 - "ramble-unit-tests": more help:
Step #2 - "ramble-unit-tests":   ramble help --all       list all commands and options
Step #2 - "ramble-unit-tests":   ramble help <command>   help on a specific command
Step #2 - "ramble-unit-tests":   ramble help --spec      help on the app
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/cloud-build/builds;region=us-central1/1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8?project=993292483723.]
...
    63      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/context.py                                                             52      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/definitions/test_versions.py                                           40      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/dry_run_helpers.py                                                     53      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/edit_file_validation.py                                               117      6    95%   30, 59, 72, 85, 98, 101
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/analyze_fom_output.py                                      102      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/analyze_upload.py                                           22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/chained_experiment_variant_propagation.py                   38      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/cleanup_directive.py                                        27      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/concretize_with_different_package_managers.py               20      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/config_section_env_vars.py                                  26      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/configvar_dry_run.py                                        34      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/custom_executables.py                                       56      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/define_package_paths.py                                     54      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/dryrun_chained_experiments.py                               70      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/dryrun_copies_external_env.py                               30      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/dryrun_series_contains_package_paths.py                     21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/env_var_builtin.py                                         121      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/env_var_leakage.py                                          26      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/exclusive_filtered_vector_workloads.py                      22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/expanded_fom_dry_run.py                                     36      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/experiment_excludes.py                                     125      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/experiment_hashes.py                                        80      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/experiment_repeats.py                                      130      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/experiment_templates.py                                     29      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/explicit_zips.py                                           115      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/fom_log_file_path.py                                        20      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/formatted_executables.py                                   103      1    99%   122
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/globbing_patterns.py                                        97      9    91%   105, 107, 115, 123, 156, 160, 164, 168, 172
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/gromacs_size_expansion.py                                   12      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/included_configuration_files.py                             45      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/inclusive_filtered_vector_workloads.py                      22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/known_applications.py                                       97      4    96%   87-89, 129-130
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/license_name.py                                             38      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/malformed_config.py                                         10      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/manage_software.py                                          35      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/merge_config_files.py                                       43      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/missing_required_dry_run.py                                 14      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/nested_compilers_are_installed.py                           31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/nested_config_templates.py                                  30      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/object_import.py                                            15      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/object_precedence.py                                        37      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/object_validation.py                                        54      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/package_manager_config.py                                   21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/package_manager_provenance.py                               72      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/package_manager_requirements.py                             22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/package_manager_unique_env_dirs.py                          32      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/passthrough_variables.py                                    41      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/phase_profiling.py                                          20      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/phase_selection.py                                          46      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/phase_selection_with_dependencies.py                        56      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/registered_builtin_order.py                                 28      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/setup_analyze.py                                            54      5    91%   62, 71-72, 96, 100
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/shared_context.py                                           29      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/shell_wrappers.py                                           59      4    93%   127-128, 214-215
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/short_builtin_dep_name.py                                   10      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/software_spec_injection.py                                  72      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/spack_env_cache.py                                          38      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/tag_filtering.py                                            31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/target_shells.py                                            21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/template.py                                                 74      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/test_fast_tables.py                                         28      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/test_variable_precedence.py                                 24      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/unused_compilers_are_skipped.py                             31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/variant_propagation.py                                      16      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/vector_workloads.py                                         15      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/warn_mirror_support.py                                      17      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/workload_where_clauses.py                                   27      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/workspace_includes.py                                       60      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/workspace_path_replacements.py                              25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/end_to_end/wrfv4_dry_run.py                                           245      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/expander.py                                                            85      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/experiment_result.py                                                  158      4    97%   177, 302, 305, 319
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/experiment_set.py                                                    1145      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/fetch_strategy.py                                                     489      6    99%   95, 218, 324, 436, 579, 674
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/filters.py                                                             85      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/gcs_fetch.py                                                           53      6    89%   78-83
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/get_file_path.py                                                       19      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/impossible_when.py                                                     52      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/language/test_requires_utility.py                                      16      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/language_helpers.py                                                    12      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/mirror.py                                                              88      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/mock_spack_runner.py                                                  102      6    94%   52, 99, 114, 127, 130, 137
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_application.py                                                23      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_directive.py                                                 146      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/executable_modifier_usage_filters.py            51      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/experiment_modification.py                      22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_env_var_modifiers.py                       23      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_layered_modifications.py                   25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_modifier_dry_run.py                        26      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_modifier_phases.py                         43      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_modifier_spack_configs.py                  25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_repeated_modifications.py                  21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/mock_spack_modifier.py                          29      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/modeless_variables.py                           22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/modifier_conflicts.py                           43      4    91%   55, 78, 105, 132
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/modifier_helpers.py                             92      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/modifier_nested_var_dry_run.py                  24      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/modifier_prepare_analysis.py                    31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/multi_modifier_dry_run.py                       31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/repeat_env_var.py                               21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/required_variables.py                           20      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_functionality/single_modifier_dry_run.py                      40      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_language.py                                                  308      1    99%   134
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/modifier_recursion.py                                                  85      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/namespace_trie.py                                                      58      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/package_manager_functionality/package_manager_general.py               28      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/package_manager_language.py                                            31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/renderer.py                                                            10      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/reports.py                                                            258      2    99%   105, 109
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/repository.py                                                          44      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/software_environment.py                                               225      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/spec.py                                                                33      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/stage.py                                                              356      9    97%   144-145, 223, 307, 365-366, 658-660
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria.py                                                    61      1    98%   115
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/anti_match.py                           29      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/repeat_success_strict.py                37      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_fom_comparison.py               25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_fom_globbing.py                 25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_functions.py                    16      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_modifiers.py                    81      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_precedence.py                   58      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_scoping.py                      25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_summary.py                      25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/success_criteria_functionality/success_variable_fom_comparison.py      28      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/systems_and_platforms/system_platform_general.py                       78      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/test_base_classes_extra.py                                            151      1    99%   135
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/test_context_columns.py                                               232      1    99%   278
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/test_deployment.py                                                     36      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/test_results_tables.py                                                124      1    99%   185
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/test_workspace_bootstrap.py                                            30      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/uploader.py                                                           191      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/colors.py                                                          7      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/conversions.py                                                    11      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/cpus.py                                                           13      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/editor.py                                                         79      4    95%   26, 72, 102, 114
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/env.py                                                            34      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/file_cache.py                                                    136      3    98%   105, 124, 226
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/foms.py                                                            9      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/format.py                                                          5      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/json_util.py                                                      21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/logger.py                                                         65      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/module_utils.py                                                   10      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/naming.py                                                         22      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/object_utils.py                                                    6      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/output_capture.py                                                  6      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/path.py                                                            6      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/shell_utils.py                                                    16      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/stats.py                                                          12      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/web.py                                                           129      1    99%   167
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/util/yaml_generation.py                                                69      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/variant.py                                                            211      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/version.py                                                            142      1    99%   117
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/when.py                                                               668      3    99%   1106, 1237, 1289
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workflow_manager_functionality/workflow_manager.py                     37      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workflow_manager_functionality/workflow_manager_foms.py                20      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workspace.py                                                           95      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workspace_hashing/unsetup_workspace_cannot_analyze.py                  21      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workspace_hashing/workspace_name_does_not_change_hash.py               35      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/test/workspace_hashing/workspace_setup_creates_inventory.py                 33      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/toolkit.py                                                                  12      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/uploader.py                                                                413     68    84%   90, 92, 120, 126, 132, 140-141, 153, 243-244, 246-247, 251, 271-272, 276, 278, 400, 499, 534-535, 555-558, 561-601, 604-609, 655, 687, 716-717, 778, 780, 797-799
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/__init__.py                                                             0      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/class_attributes.py                                                    10      1    90%   27
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/cleaner.py                                                              4      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/colors.py                                                              74      2    97%   127-128
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/command_runner.py                                                      87     12    86%   45, 50, 53-54, 170, 180-181, 185-190
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/conflicts.py                                                            6      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/conversions.py                                                         29      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/cpus.py                                                                 5      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/directives.py                                                          11      1    91%   16
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/editor.py                                                              46      3    93%   49, 93, 132
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/env.py                                                                 56      1    98%   31
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/executable.py                                                          63      2    97%   103, 165
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/file_cache.py                                                          77      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/file_editor.py                                                          5      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/file_util.py                                                           37      1    97%   25
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/foms.py                                                                60     10    83%   25-26, 50, 56-57, 74-79
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/format.py                                                              25      1    96%   32
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/graph.py                                                               22      2    91%   73, 91
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/hashing.py                                                             18      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/imp/__init__.py                                                         1      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/imp/importlib_importer.py                                              22      2    91%   27, 35
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/install_cache.py                                                        7      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/json_util.py                                                           16      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/lock.py                                                                35     16    54%   43, 51-52, 65-84
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/logger.py                                                             133     11    92%   135, 142, 206-208, 264-266, 276-278
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/matrices.py                                                            15      1    93%   34
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/module_utils.py                                                        15      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/naming.py                                                             132     14    89%   180, 183, 207, 226-231, 234-236, 265-266
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/object_utils.py                                                        25      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/output_capture.py                                                      15      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/path.py                                                                31      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/shell_utils.py                                                         32      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/spec_utils.py                                                          64      1    98%   83
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/stats.py                                                              128      1    99%   25
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/version.py                                                             25      3    88%   44, 55, 60
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/web.py                                                                236     91    61%   70, 77, 88-91, 98-99, 102, 109-115, 144-145, 156-187, 205, 215, 241, 260-268, 272-280, 284-289, 303-343, 353-354, 358-360, 368-372
Step #2 - "ramble-unit-tests": lib/ramble/ramble/util/yaml_generation.py                                                     83      5    94%   49-50, 128, 133, 187
Step #2 - "ramble-unit-tests": lib/ramble/ramble/variants.py                                                                222      9    96%   68-70, 93, 228, 309, 407-408, 548
Step #2 - "ramble-unit-tests": lib/ramble/ramble/wmkit.py                                                                     6      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/workload.py                                                                135     19    86%   65-68, 71-73, 172, 180-183, 197, 211, 248-250, 266-268
Step #2 - "ramble-unit-tests": lib/ramble/ramble/workspace/__init__.py                                                        2      0   100%
Step #2 - "ramble-unit-tests": lib/ramble/ramble/workspace/shell.py                                                          78     16    79%   25-27, 29-34, 42-44, 48, 74-75, 81-82
Step #2 - "ramble-unit-tests": lib/ramble/ramble/workspace/workspace.py                                                    1494    167    89%   134-135, 159, 214, 234, 285, 295, 730-734, 737-740, 744-745, 848-850, 919-930, 941-942, 960-961, 970-971, 999, 1018-1028, 1039-1040, 1047-1048, 1093, 1105, 1110-1113, 1125-1126, 1139-1142, 1204, 1223-1249, 1264, 1301-1307, 1313, 1342, 1408-1449, 1456-1457, 1460-1461, 1468-1470, 1535-1537, 1616, 1633, 1644, 1647, 1655-1656, 1688-1689, 1719, 1722, 1780, 1808, 1848, 1875-1876, 1901, 1912, 1946, 1955, 2013-2014, 2083, 2105-2106, 2221, 2270, 2299, 2392, 2398, 2407, 2537, 2546, 2588, 2597-2598, 2611-2612, 2617-2623, 2659, 2744, 2762, 2799-2800, 2807-2808
Step #2 - "ramble-unit-tests": ------------------------------------------------------------------------------------------------------------------------
Step #2 - "ramble-unit-tests": TOTAL                                                                                      32283   2160    93%
Finished Step #2 - "ramble-unit-tests"
PUSH
DONE

Build Log: https://console.cloud.google.com/cloud-build/builds;region=us-central1/1c748dd2-b8e4-4f5a-9ee1-05b5d73577f8?project=993292483723