Merge "Forward artifacts to child jobs within buildset"

This commit is contained in:
Zuul
2019-03-28 21:43:39 +00:00
committed by Gerrit Code Review
9 changed files with 124 additions and 2 deletions

View 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

View File

@@ -0,0 +1 @@
test

View 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

View File

@@ -0,0 +1,4 @@
- hosts: all
tasks:
- debug:
var: zuul.artifacts

View 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

View File

@@ -0,0 +1,7 @@
- tenant:
name: tenant-one
source:
gerrit:
config-projects:
- common-config
- org/project1

View File

@@ -5124,6 +5124,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"