only check the tarball-base when building tarballs
Only require projects that build tarball artifacts to have the tarball-base value set properly. Change-Id: I9d42329f4080cc0f766b71fae4c45cd87aea3e3a Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
@@ -234,23 +234,25 @@ def validate_releases(deliverable_info, zuul_layout,
|
|||||||
gitutils.clone_repo(workdir, project['repo'])
|
gitutils.clone_repo(workdir, project['repo'])
|
||||||
|
|
||||||
# Check that the sdist name and tarball-base name match.
|
# Check that the sdist name and tarball-base name match.
|
||||||
sdist = pythonutils.get_sdist_name(workdir, project['repo'])
|
if link_mode == 'tarball':
|
||||||
if sdist is not None:
|
sdist = pythonutils.get_sdist_name(workdir,
|
||||||
expected = project.get(
|
project['repo'])
|
||||||
'tarball-base',
|
if sdist is not None:
|
||||||
os.path.basename(project['repo']),
|
expected = project.get(
|
||||||
)
|
'tarball-base',
|
||||||
if sdist != expected:
|
os.path.basename(project['repo']),
|
||||||
if 'tarball-base' in deliverable_info:
|
)
|
||||||
action = 'is set to'
|
if sdist != expected:
|
||||||
else:
|
if 'tarball-base' in deliverable_info:
|
||||||
action = 'defaults to'
|
action = 'is set to'
|
||||||
mk_error(
|
else:
|
||||||
('tarball-base for %s %s %s %r '
|
action = 'defaults to'
|
||||||
'but the sdist name is actually %r. ' +
|
mk_error(
|
||||||
_PLEASE)
|
('tarball-base for %s %s %s %r '
|
||||||
% (project['repo'], release['version'],
|
'but the sdist name is actually %r. ' +
|
||||||
action, expected, sdist))
|
_PLEASE)
|
||||||
|
% (project['repo'], release['version'],
|
||||||
|
action, expected, sdist))
|
||||||
|
|
||||||
# Report if the version has already been
|
# Report if the version has already been
|
||||||
# tagged. We expect it to not exist, but neither
|
# tagged. We expect it to not exist, but neither
|
||||||
|
|||||||
@@ -630,10 +630,10 @@ class TestValidateTarballBase(base.BaseTestCase):
|
|||||||
super(TestValidateTarballBase, self).setUp()
|
super(TestValidateTarballBase, self).setUp()
|
||||||
self.tmpdir = self.useFixture(fixtures.TempDir()).path
|
self.tmpdir = self.useFixture(fixtures.TempDir()).path
|
||||||
|
|
||||||
|
@mock.patch('openstack_releases.project_config.require_release_jobs_for_repo')
|
||||||
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
||||||
def test_default_ok(self, gsn):
|
def test_default_ok(self, gsn, jobs):
|
||||||
deliverable_info = {
|
deliverable_info = {
|
||||||
'artifact-link-mode': 'none',
|
|
||||||
'releases': [
|
'releases': [
|
||||||
{'version': '1.5.0',
|
{'version': '1.5.0',
|
||||||
'projects': [
|
'projects': [
|
||||||
@@ -653,11 +653,13 @@ class TestValidateTarballBase(base.BaseTestCase):
|
|||||||
warnings.append,
|
warnings.append,
|
||||||
errors.append,
|
errors.append,
|
||||||
)
|
)
|
||||||
|
print(warnings, errors)
|
||||||
self.assertEqual(0, len(warnings))
|
self.assertEqual(0, len(warnings))
|
||||||
self.assertEqual(0, len(errors))
|
self.assertEqual(0, len(errors))
|
||||||
|
|
||||||
|
@mock.patch('openstack_releases.project_config.require_release_jobs_for_repo')
|
||||||
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
||||||
def test_default_invalid(self, gsn):
|
def test_ignored_link_mode_none(self, gsn, jobs):
|
||||||
deliverable_info = {
|
deliverable_info = {
|
||||||
'artifact-link-mode': 'none',
|
'artifact-link-mode': 'none',
|
||||||
'releases': [
|
'releases': [
|
||||||
@@ -670,6 +672,33 @@ class TestValidateTarballBase(base.BaseTestCase):
|
|||||||
}
|
}
|
||||||
warnings = []
|
warnings = []
|
||||||
errors = []
|
errors = []
|
||||||
|
gsn.return_value = 'this-is-wrong'
|
||||||
|
validate.validate_releases(
|
||||||
|
deliverable_info,
|
||||||
|
{'validate-projects-by-name': {}},
|
||||||
|
'ocata',
|
||||||
|
self.tmpdir,
|
||||||
|
warnings.append,
|
||||||
|
errors.append,
|
||||||
|
)
|
||||||
|
print(warnings, errors)
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
self.assertEqual(0, len(errors))
|
||||||
|
|
||||||
|
@mock.patch('openstack_releases.project_config.require_release_jobs_for_repo')
|
||||||
|
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
||||||
|
def test_default_invalid(self, gsn, jobs):
|
||||||
|
deliverable_info = {
|
||||||
|
'releases': [
|
||||||
|
{'version': '1.5.0',
|
||||||
|
'projects': [
|
||||||
|
{'repo': 'openstack/automaton',
|
||||||
|
'hash': 'be2885f544637e6ee6139df7dc7bf937925804dd'},
|
||||||
|
]}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
warnings = []
|
||||||
|
errors = []
|
||||||
gsn.return_value = 'automaton1'
|
gsn.return_value = 'automaton1'
|
||||||
validate.validate_releases(
|
validate.validate_releases(
|
||||||
deliverable_info,
|
deliverable_info,
|
||||||
@@ -679,13 +708,14 @@ class TestValidateTarballBase(base.BaseTestCase):
|
|||||||
warnings.append,
|
warnings.append,
|
||||||
errors.append,
|
errors.append,
|
||||||
)
|
)
|
||||||
|
print(warnings, errors)
|
||||||
self.assertEqual(0, len(warnings))
|
self.assertEqual(0, len(warnings))
|
||||||
self.assertEqual(1, len(errors))
|
self.assertEqual(1, len(errors))
|
||||||
|
|
||||||
|
@mock.patch('openstack_releases.project_config.require_release_jobs_for_repo')
|
||||||
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
||||||
def test_explicit_ok(self, gsn):
|
def test_explicit_ok(self, gsn, jobs):
|
||||||
deliverable_info = {
|
deliverable_info = {
|
||||||
'artifact-link-mode': 'none',
|
|
||||||
'releases': [
|
'releases': [
|
||||||
{'version': '1.5.0',
|
{'version': '1.5.0',
|
||||||
'projects': [
|
'projects': [
|
||||||
@@ -706,13 +736,14 @@ class TestValidateTarballBase(base.BaseTestCase):
|
|||||||
warnings.append,
|
warnings.append,
|
||||||
errors.append,
|
errors.append,
|
||||||
)
|
)
|
||||||
|
print(warnings, errors)
|
||||||
self.assertEqual(0, len(warnings))
|
self.assertEqual(0, len(warnings))
|
||||||
self.assertEqual(0, len(errors))
|
self.assertEqual(0, len(errors))
|
||||||
|
|
||||||
|
@mock.patch('openstack_releases.project_config.require_release_jobs_for_repo')
|
||||||
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
@mock.patch('openstack_releases.pythonutils.get_sdist_name')
|
||||||
def test_explicit_invalid(self, gsn):
|
def test_explicit_invalid(self, gsn, jobs):
|
||||||
deliverable_info = {
|
deliverable_info = {
|
||||||
'artifact-link-mode': 'none',
|
|
||||||
'releases': [
|
'releases': [
|
||||||
{'version': '1.5.0',
|
{'version': '1.5.0',
|
||||||
'projects': [
|
'projects': [
|
||||||
|
|||||||
Reference in New Issue
Block a user