Skip to content

Commit

Permalink
Merge 6f253bc into 893a501
Browse files Browse the repository at this point in the history
  • Loading branch information
rcerven committed Jul 8, 2020
2 parents 893a501 + 6f253bc commit 18fecdf
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 21 deletions.
6 changes: 6 additions & 0 deletions koji_containerbuild/plugins/builder_containerbuild.py
Original file line number Diff line number Diff line change
Expand Up @@ -864,6 +864,12 @@ def handler(self, src, target, opts=None):
self.opts = opts
component = None

if not opts.get('git_branch'):
raise koji.BuildError("Git branch must be specified")

if opts.get('scratch') and opts.get('isolated'):
raise koji.BuildError("Build cannot be both isolated and scratch")

self.event_id = self.session.getLastEvent()['id']
target_info = self.session.getBuildTarget(target, event=self.event_id)
if not target_info:
Expand Down
50 changes: 29 additions & 21 deletions tests/test_builder_containerbuild.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"""
from __future__ import absolute_import

from copy import deepcopy
import os
import os.path
import signal
Expand Down Expand Up @@ -611,21 +612,23 @@ def test_osbs_build(self, tmpdir, pkg_info, failure, orchestrator):
(flexmock(task)
.should_receive('_write_combined_log'))

build_args = {'git_branch': 'master'}
task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
src=src,
koji_task_id=koji_task_id,
orchestrator=orchestrator,
build_not_started=bool(failure),
create_build_args=deepcopy(build_args),
)

if failure:
with pytest.raises(koji.BuildError) as exc:
task.handler(src['src'], 'target', opts={})
task.handler(src['src'], 'target', opts=build_args)

assert failure in str(exc.value)

else:
task_response = task.handler(src['src'], 'target', opts={})
task_response = task.handler(src['src'], 'target', opts=build_args)

assert task_response == {
'repositories': ['unique-repo', 'primary-repo'],
Expand Down Expand Up @@ -830,7 +833,7 @@ def test_get_build_target_failed(self, tmpdir):
workdir=str(tmpdir),
demux=True)
with pytest.raises(koji.BuildError) as exc:
task.handler(src['src'], 'target', opts={})
task.handler(src['src'], 'target', opts={'git_branch': 'master'})
assert "Target `target` not found" in str(exc.value)

def test_get_build_target_failed_source(self, tmpdir):
Expand Down Expand Up @@ -967,15 +970,17 @@ def test_additional_args(self, tmpdir, log_upload_raises, orchestrator, addition
(flexmock(task)
.should_call('_incremental_upload_logs'))

build_args = deepcopy(additional_args)
build_args['git_branch'] = 'master'
task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
src=src,
koji_task_id=koji_task_id,
orchestrator=orchestrator,
create_build_args=additional_args.copy())
create_build_args=deepcopy(build_args))

task_response = task.handler(src['src'], 'target', opts=additional_args)
task_response = task.handler(src['src'], 'target', opts=build_args)

if orchestrator and additional_args.get('skip_build', None):
if orchestrator and build_args.get('skip_build', None):
assert task_response == {
'repositories': [],
'koji_builds': [],
Expand Down Expand Up @@ -1076,17 +1081,16 @@ def test_flatpak_build(self, tmpdir):

additional_args = {
'flatpak': True,
'git_branch': 'master',
}

task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
src=src,
koji_task_id=task_id,
orchestrator=True,
create_build_args=additional_args.copy(),
create_build_args=deepcopy(additional_args),
build_not_started=False)
task_response = task.handler(src['src'], 'target', opts={
'flatpak': True,
})
task_response = task.handler(src['src'], 'target', opts=additional_args)
assert task_response == {
'repositories': ['unique-repo', 'primary-repo'],
'koji_builds': [koji_build_id]
Expand Down Expand Up @@ -1132,7 +1136,7 @@ def test_oversized_tags(self, tmpdir, orchestrator, tag, release, is_oversized):
(flexmock(task)
.should_receive('_write_combined_log'))

additional_args = {}
additional_args = {'git_branch': 'master'}
if release:
additional_args['release'] = release
task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
Expand Down Expand Up @@ -1231,7 +1235,7 @@ def test_build_nvr_exists(self, tmpdir, orchestrator, build_state, triggered_aft
(flexmock(task)
.should_receive('_write_combined_log'))

additional_args = {}
additional_args = {'git_branch': 'master'}
if param_release:
additional_args['release'] = param_release
if triggered_after_koji_task:
Expand Down Expand Up @@ -1376,18 +1380,20 @@ def test_compose_ids_and_signing_intent(self, tmpdir, additional_args, raises):
(flexmock(task)
.should_receive('_write_demultiplexed_logs'))

build_args = deepcopy(additional_args)
build_args['git_branch'] = 'master'
task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
src=src,
koji_task_id=koji_task_id,
orchestrator=True,
build_not_started=raises,
create_build_args=additional_args.copy())
create_build_args=deepcopy(build_args))

if raises:
with pytest.raises(koji.BuildError):
task.handler(src['src'], 'target', opts=additional_args)
task.handler(src['src'], 'target', opts=build_args)
else:
task_response = task.handler(src['src'], 'target', opts=additional_args)
task_response = task.handler(src['src'], 'target', opts=build_args)

assert task_response == {
'repositories': ['unique-repo', 'primary-repo'],
Expand All @@ -1404,8 +1410,8 @@ def test_compose_ids_and_signing_intent(self, tmpdir, additional_args, raises):
({'isolated': True, 'arch_override': ''}, False),
({'isolated': False, 'arch_override': 'x86_64'}, True),
({'isolated': False, 'arch_override': ''}, False),
({'scratch': True, 'isolated': True, 'arch_override': 'x86_64'}, False),
({'scratch': True, 'isolated': True, 'arch_override': ''}, False),
({'scratch': True, 'isolated': True, 'arch_override': 'x86_64'}, True),
({'scratch': True, 'isolated': True, 'arch_override': ''}, True),
({'scratch': False, 'isolated': True, 'arch_override': 'x86_64'}, False),
({'scratch': False, 'isolated': True, 'arch_override': ''}, False),
({'scratch': True, 'isolated': False, 'arch_override': 'x86_64'}, False),
Expand Down Expand Up @@ -1444,18 +1450,20 @@ def test_arch_override(self, tmpdir, orchestrator, additional_args, raises):
(flexmock(task)
.should_receive('_write_combined_log'))

build_args = deepcopy(additional_args)
build_args['git_branch'] = 'master'
task._osbs = self._mock_osbs(koji_build_id=koji_build_id,
src=src,
koji_task_id=koji_task_id,
orchestrator=orchestrator,
build_not_started=raises,
create_build_args=additional_args.copy())
create_build_args=deepcopy(build_args))

if raises:
with pytest.raises(koji.BuildError):
task.handler(src['src'], 'target', opts=additional_args)
task.handler(src['src'], 'target', opts=build_args)
else:
task_response = task.handler(src['src'], 'target', opts=additional_args)
task_response = task.handler(src['src'], 'target', opts=build_args)

assert task_response == {
'repositories': ['unique-repo', 'primary-repo'],
Expand Down Expand Up @@ -1617,7 +1625,7 @@ def test_schema_validation_invalid_type_for_opts_property_source(self,
'isolated': False,
'dependency_replacements': None,
'yum_repourls': None,
'git_branch': None,
'git_branch': 'some',
'push_url': None,
'koji_parent_build': None,
'release': None,
Expand Down

0 comments on commit 18fecdf

Please sign in to comment.