From 74e4c999848d7abe42068c1de592dd148aafc937 Mon Sep 17 00:00:00 2001 From: mprahl Date: Jun 27 2018 11:05:06 +0000 Subject: [PATCH 1/2] Support the modulemd buildopts.rpms.whitelist option --- diff --git a/module_build_service/builder/KojiModuleBuilder.py b/module_build_service/builder/KojiModuleBuilder.py index 335381d..262f20f 100644 --- a/module_build_service/builder/KojiModuleBuilder.py +++ b/module_build_service/builder/KojiModuleBuilder.py @@ -400,7 +400,8 @@ chmod 644 %buildroot/etc/rpm/macros.zz-modules self.module_build_tag = self._koji_create_tag( self.tag_name + "-build", self.arches, perm="admin") - self._koji_whitelist_packages(self.components) + self._koji_whitelist_packages( + self.mmd.props.buildopts.props.rpm_whitelist or self.components) # If we have just created the build tag in this buildroot_connect call, block all # the components in `blocked_packages` list. We want to do that just once, because diff --git a/tests/test_builder/test_koji.py b/tests/test_builder/test_koji.py index 4daae99..02e1638 100644 --- a/tests/test_builder/test_koji.py +++ b/tests/test_builder/test_koji.py @@ -413,7 +413,8 @@ class TestKojiBuilder: assert weights == {"httpd": 1.5, "apr": 1.5} @pytest.mark.parametrize('blocklist', [False, True]) - def test_buildroot_connect(self, blocklist): + @pytest.mark.parametrize('custom_whitelist', [False, True]) + def test_buildroot_connect(self, custom_whitelist, blocklist): if blocklist: mmd = self.module.mmd() xmd = glib.from_variant_dict(mmd.get_xmd()) @@ -421,6 +422,13 @@ class TestKojiBuilder: mmd.set_xmd(glib.dict_values(xmd)) self.module.modulemd = mmd.dumps() + if custom_whitelist: + mmd = self.module.mmd() + opts = mmd.get_buildopts() + opts.set_rpm_whitelist(['custom1', 'custom2']) + mmd.set_buildopts(opts) + self.module.modulemd = mmd.dumps() + builder = FakeKojiModuleBuilder( owner=self.module.owner, module=self.module, config=conf, tag_name='module-foo', components=["nginx"]) @@ -431,8 +439,18 @@ class TestKojiBuilder: groups['srpm-build'] = set(["fedora-release"]) builder.buildroot_connect(groups) - expected_calls = [mock.call('module-foo', 'nginx', u'Moe Szyslak'), - mock.call('module-foo-build', 'nginx', u'Moe Szyslak')] + if custom_whitelist: + expected_calls = [ + mock.call('module-foo', 'custom1', 'Moe Szyslak'), + mock.call('module-foo', 'custom2', 'Moe Szyslak'), + mock.call('module-foo-build', 'custom1', 'Moe Szyslak'), + mock.call('module-foo-build', 'custom2', 'Moe Szyslak') + ] + else: + expected_calls = [ + mock.call('module-foo', 'nginx', 'Moe Szyslak'), + mock.call('module-foo-build', 'nginx', 'Moe Szyslak') + ] assert session.packageListAdd.mock_calls == expected_calls expected_calls = [mock.call('module-foo-build', 'build'), From ddf248f837e7e9b266bc16fd0f77df335376589b Mon Sep 17 00:00:00 2001 From: mprahl Date: Jun 27 2018 11:33:27 +0000 Subject: [PATCH 2/2] Fix the Docker volume mount for running the tests using Jenkins --- diff --git a/Jenkinsfile b/Jenkinsfile index eac7c3e..caed919 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,7 +38,7 @@ node('factory2'){ stage('Run Test Suite') { timeout(20) { - onmyduffynode 'cd fm-orchestrator && docker run -v $PWD:/src:Z mbs/test' + onmyduffynode 'docker run -v ~/fm-orchestrator:/src:Z mbs/test' } }