Include the prepared projects list in zuul variables
So that jobs may perform operations on the Zuul-supplied git repos, add information about the complete set to the job variables. Change-Id: I0e244c3f310aacac82d7e9f2391739862dad5b6d
This commit is contained in:
parent
1ae9fb313a
commit
ba46c0628e
|
@ -207,10 +207,42 @@ of item.
|
||||||
|
|
||||||
.. var:: src_dir
|
.. var:: src_dir
|
||||||
|
|
||||||
The path to the source code on the remote host, relative
|
The path to the source code relative to the work dir. E.g.,
|
||||||
to the home dir of the remote user.
|
`src/git.example.com/org/project`.
|
||||||
E.g., `src/git.example.com/org/project`.
|
|
||||||
|
|
||||||
|
.. var:: projects
|
||||||
|
:type: list
|
||||||
|
|
||||||
|
A list of all projects prepared by Zuul for the item. It
|
||||||
|
includes, at least, the item's own project. It also includes
|
||||||
|
the projects of any items this item depends on, as well as the
|
||||||
|
projects that appear in :attr:`job.required-projects`.
|
||||||
|
|
||||||
|
This is a list of dictionaries, with each element consisting of:
|
||||||
|
|
||||||
|
.. var:: name
|
||||||
|
|
||||||
|
The name of the project, excluding hostname. E.g., `org/project`.
|
||||||
|
|
||||||
|
.. var:: short_name
|
||||||
|
|
||||||
|
The name of the project, excluding directories or
|
||||||
|
organizations. E.g., `project`.
|
||||||
|
|
||||||
|
.. var:: canonical_hostname
|
||||||
|
|
||||||
|
The canonical hostname where the project lives. E.g.,
|
||||||
|
`git.example.com`.
|
||||||
|
|
||||||
|
.. var:: canonical_name
|
||||||
|
|
||||||
|
The full canonical name of the project including hostname.
|
||||||
|
E.g., `git.example.com/org/project`.
|
||||||
|
|
||||||
|
.. var:: src_dir
|
||||||
|
|
||||||
|
The path to the source code, relative to the work dir. E.g.,
|
||||||
|
`src/git.example.com/org/project`.
|
||||||
|
|
||||||
.. var:: tenant
|
.. var:: tenant
|
||||||
|
|
||||||
|
|
|
@ -182,6 +182,7 @@ class ExecutorClient(object):
|
||||||
if (hasattr(item.change, 'newrev') and item.change.newrev
|
if (hasattr(item.change, 'newrev') and item.change.newrev
|
||||||
and item.change.newrev != '0' * 40):
|
and item.change.newrev != '0' * 40):
|
||||||
zuul_params['newrev'] = item.change.newrev
|
zuul_params['newrev'] = item.change.newrev
|
||||||
|
zuul_params['projects'] = [] # Set below
|
||||||
zuul_params['items'] = []
|
zuul_params['items'] = []
|
||||||
for i in all_items:
|
for i in all_items:
|
||||||
d = dict()
|
d = dict()
|
||||||
|
@ -200,7 +201,6 @@ class ExecutorClient(object):
|
||||||
d['branch'] = i.change.branch
|
d['branch'] = i.change.branch
|
||||||
zuul_params['items'].append(d)
|
zuul_params['items'].append(d)
|
||||||
|
|
||||||
# Legacy environment variables
|
|
||||||
params = dict()
|
params = dict()
|
||||||
params['job'] = job.name
|
params['job'] = job.name
|
||||||
params['timeout'] = job.timeout
|
params['timeout'] = job.timeout
|
||||||
|
@ -261,6 +261,15 @@ class ExecutorClient(object):
|
||||||
params['projects'].append(make_project_dict(project))
|
params['projects'].append(make_project_dict(project))
|
||||||
projects.add(project)
|
projects.add(project)
|
||||||
|
|
||||||
|
for p in projects:
|
||||||
|
zuul_params['projects'].append(dict(
|
||||||
|
name=p.name,
|
||||||
|
short_name=p.name.split('/')[-1],
|
||||||
|
canonical_hostname=p.canonical_hostname,
|
||||||
|
canonical_name=p.canonical_name,
|
||||||
|
src_dir=os.path.join('src', p.canonical_name),
|
||||||
|
))
|
||||||
|
|
||||||
build = Build(job, uuid)
|
build = Build(job, uuid)
|
||||||
build.parameters = params
|
build.parameters = params
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue