Merge "Add projects.required to zuul vars" into feature/zuulv3
diff --git a/doc/source/user/jobs.rst b/doc/source/user/jobs.rst
index 3d24f5d..6962b8f 100644
--- a/doc/source/user/jobs.rst
+++ b/doc/source/user/jobs.rst
@@ -244,6 +244,11 @@
The path to the source code, relative to the work dir. E.g.,
`src/git.example.com/org/project`.
+ .. var:: required
+
+ A boolean indicating whether this project appears in the
+ :attr:`job.required-projects` list for this job.
+
.. var:: tenant
The name of the current Zuul tenant.
diff --git a/zuul/executor/client.py b/zuul/executor/client.py
index f97d286..eb2bfdf 100644
--- a/zuul/executor/client.py
+++ b/zuul/executor/client.py
@@ -234,6 +234,7 @@
params['vars'] = copy.deepcopy(job.variables)
params['zuul'] = zuul_params
projects = set()
+ required_projects = set()
def make_project_dict(project, override_branch=None):
project_config = item.current_build_set.layout.project_configs.get(
@@ -260,6 +261,7 @@
make_project_dict(project,
job_project.override_branch))
projects.add(project)
+ required_projects.add(project)
for i in all_items:
if i.change.project not in projects:
project = i.change.project
@@ -273,6 +275,7 @@
canonical_hostname=p.canonical_hostname,
canonical_name=p.canonical_name,
src_dir=os.path.join('src', p.canonical_name),
+ required=(p in required_projects),
))
build = Build(job, uuid)