From 5b69a16ea7051bd9f928616b39f4d145bda18b0a Mon Sep 17 00:00:00 2001 From: Matt Seddon <37993418+mattseddon@users.noreply.github.com> Date: Tue, 29 Aug 2023 08:37:03 +1000 Subject: [PATCH] Add DVC_ROOT env var into queued experiment runs (#9879) --- dvc/repo/experiments/queue/base.py | 3 ++- tests/func/experiments/test_experiments.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dvc/repo/experiments/queue/base.py b/dvc/repo/experiments/queue/base.py index 474980ffa..f212c7770 100644 --- a/dvc/repo/experiments/queue/base.py +++ b/dvc/repo/experiments/queue/base.py @@ -21,7 +21,7 @@ from dvc_studio_client.post_live_metrics import get_studio_config from funcy import retry from dvc.dependency import ParamsDependency -from dvc.env import DVC_EXP_BASELINE_REV, DVC_EXP_NAME +from dvc.env import DVC_EXP_BASELINE_REV, DVC_EXP_NAME, DVC_ROOT from dvc.lock import LockError from dvc.repo.experiments.exceptions import ExperimentExistsError from dvc.repo.experiments.executor.base import BaseExecutor @@ -348,6 +348,7 @@ class BaseStashQueue(ABC): if not name: name = get_random_exp_name(self.scm, baseline_rev) run_env[DVC_EXP_NAME] = name + run_env[DVC_ROOT] = self.repo.root_dir # save studio config to read later by dvc and dvclive studio_config = get_studio_config( diff --git a/tests/func/experiments/test_experiments.py b/tests/func/experiments/test_experiments.py index 5b1ea5104..1c487306c 100644 --- a/tests/func/experiments/test_experiments.py +++ b/tests/func/experiments/test_experiments.py @@ -12,6 +12,7 @@ from dvc.dvcfile import PROJECT_FILE from dvc.env import ( DVC_EXP_BASELINE_REV, DVC_EXP_NAME, + DVC_ROOT, DVC_STUDIO_OFFLINE, DVC_STUDIO_REPO_URL, DVC_STUDIO_TOKEN, @@ -620,6 +621,7 @@ def test_run_env(tmp_dir, dvc, scm, mocker): from dvc.env import ( DVC_EXP_BASELINE_REV, DVC_EXP_NAME, + DVC_ROOT, DVC_STUDIO_OFFLINE, DVC_STUDIO_REPO_URL, DVC_STUDIO_TOKEN, @@ -628,6 +630,7 @@ def test_run_env(tmp_dir, dvc, scm, mocker): for v in ( DVC_EXP_BASELINE_REV, DVC_EXP_NAME, + DVC_ROOT, DVC_STUDIO_OFFLINE, DVC_STUDIO_REPO_URL, DVC_STUDIO_TOKEN, @@ -655,6 +658,7 @@ def test_run_env(tmp_dir, dvc, scm, mocker): dvc.experiments.run() assert (tmp_dir / DVC_EXP_BASELINE_REV).read_text().strip() == baseline assert (tmp_dir / DVC_EXP_NAME).read_text().strip() + assert (tmp_dir / DVC_ROOT).read_text().strip() == dvc.root_dir assert (tmp_dir / DVC_STUDIO_TOKEN).read_text().strip() == "TOKEN" assert (tmp_dir / DVC_STUDIO_REPO_URL).read_text().strip() == "REPO_URL" assert (tmp_dir / DVC_STUDIO_URL).read_text().strip() == "BASE_URL"