Forward artifacts to child jobs within buildset
When providing an artifact using zuul_return this information is currently only available in different changes. However just like regular variables this information should be forwarded to child jobs in the same buildset too. Change-Id: I8fefb57ccbbd61d51f96f18e882c0ab615cb0cd0
This commit is contained in:
17
tests/fixtures/config/provides-requires-buildset/git/common-config/zuul.yaml
vendored
Normal file
17
tests/fixtures/config/provides-requires-buildset/git/common-config/zuul.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
post-review: true
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
success:
|
||||
gerrit:
|
||||
Verified: 1
|
||||
failure:
|
||||
gerrit:
|
||||
Verified: -1
|
||||
|
||||
- job:
|
||||
name: base
|
||||
parent: null
|
||||
1
tests/fixtures/config/provides-requires-buildset/git/org_project1/README
vendored
Normal file
1
tests/fixtures/config/provides-requires-buildset/git/org_project1/README
vendored
Normal file
@@ -0,0 +1 @@
|
||||
test
|
||||
10
tests/fixtures/config/provides-requires-buildset/git/org_project1/playbooks/image-builder.yaml
vendored
Normal file
10
tests/fixtures/config/provides-requires-buildset/git/org_project1/playbooks/image-builder.yaml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
- hosts: all
|
||||
tasks:
|
||||
- name: Pause and let child run
|
||||
zuul_return:
|
||||
data:
|
||||
zuul:
|
||||
pause: true
|
||||
artifacts:
|
||||
- name: image
|
||||
url: http://example.com/image
|
||||
4
tests/fixtures/config/provides-requires-buildset/git/org_project1/playbooks/image-user.yaml
vendored
Normal file
4
tests/fixtures/config/provides-requires-buildset/git/org_project1/playbooks/image-user.yaml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
- hosts: all
|
||||
tasks:
|
||||
- debug:
|
||||
var: zuul.artifacts
|
||||
15
tests/fixtures/config/provides-requires-buildset/git/org_project1/zuul.yaml
vendored
Normal file
15
tests/fixtures/config/provides-requires-buildset/git/org_project1/zuul.yaml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
- job:
|
||||
name: image-builder
|
||||
run: playbooks/image-builder.yaml
|
||||
|
||||
- job:
|
||||
name: image-user
|
||||
run: playbooks/image-user.yaml
|
||||
|
||||
- project:
|
||||
check:
|
||||
jobs:
|
||||
- image-builder
|
||||
- image-user:
|
||||
dependencies:
|
||||
- image-builder
|
||||
7
tests/fixtures/config/provides-requires-buildset/main.yaml
vendored
Normal file
7
tests/fixtures/config/provides-requires-buildset/main.yaml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
- tenant:
|
||||
name: tenant-one
|
||||
source:
|
||||
gerrit:
|
||||
config-projects:
|
||||
- common-config
|
||||
- org/project1
|
||||
@@ -5009,6 +5009,55 @@ class TestProvidesRequiresPause(AnsibleZuulTestCase):
|
||||
}])
|
||||
|
||||
|
||||
class TestProvidesRequiresBuildset(ZuulTestCase):
|
||||
tenant_config_file = "config/provides-requires-buildset/main.yaml"
|
||||
|
||||
def test_provides_requires_buildset(self):
|
||||
# Changes share a queue, with both running at the same time.
|
||||
self.executor_server.hold_jobs_in_build = True
|
||||
A = self.fake_gerrit.addFakeChange('org/project1', 'master', 'A')
|
||||
self.executor_server.returnData(
|
||||
'image-builder', A,
|
||||
{'zuul':
|
||||
{'artifacts': [
|
||||
{'name': 'image',
|
||||
'url': 'http://example.com/image',
|
||||
'metadata': {
|
||||
'type': 'container_image'
|
||||
}},
|
||||
]}}
|
||||
)
|
||||
|
||||
self.fake_gerrit.addEvent(A.getPatchsetCreatedEvent(1))
|
||||
self.waitUntilSettled()
|
||||
|
||||
self.assertEqual(len(self.builds), 1)
|
||||
|
||||
self.executor_server.hold_jobs_in_build = False
|
||||
self.executor_server.release()
|
||||
self.waitUntilSettled()
|
||||
|
||||
self.assertHistory([
|
||||
dict(name='image-builder', result='SUCCESS', changes='1,1'),
|
||||
dict(name='image-user', result='SUCCESS', changes='1,1'),
|
||||
])
|
||||
|
||||
build = self.getJobFromHistory('image-user', project='org/project1')
|
||||
self.assertEqual(
|
||||
build.parameters['zuul']['artifacts'],
|
||||
[{
|
||||
'project': 'org/project1',
|
||||
'change': '1',
|
||||
'patchset': '1',
|
||||
'job': 'image-builder',
|
||||
'url': 'http://example.com/image',
|
||||
'name': 'image',
|
||||
'metadata': {
|
||||
'type': 'container_image',
|
||||
}
|
||||
}])
|
||||
|
||||
|
||||
class TestProvidesRequires(ZuulDBTestCase):
|
||||
config_file = "zuul-sql-driver.conf"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user