Missed a small bit of logic where we were checking for built & not built projects. (#2131)

Add handling for calling project syncing when the project/branch isn't set to be built.
break-out-core-urls-views
Eric Holscher 2016-04-11 15:54:53 -07:00 committed by Anthony
parent f9cd668e7a
commit a29e3ab854
2 changed files with 37 additions and 23 deletions

View File

@ -193,36 +193,50 @@ def get_project_from_url(url):
return projects
def pc_log_info(project, msg):
pc_log.info(constants.LOG_TEMPLATE
.format(project=project,
version='',
msg=msg))
def _build_url(url, projects, branches):
"""
Map a URL onto specific projects to build that are linked to that URL.
Check each of the ``branches`` to see if they are active and should be built.
"""
try:
for project in projects:
(built, not_building) = _build_branches(project, branches)
if not built:
# Call update_imported_docs to update tag/branch info
update_imported_docs.delay(project.versions.get(slug=LATEST).pk)
msg = '(URL Build) Syncing versions for %s' % project.slug
pc_log.info(msg)
ret = ""
all_built = {}
all_not_building = {}
for project in projects:
(built, not_building) = _build_branches(project, branches)
if not built:
# Call update_imported_docs to update tag/branch info
update_imported_docs.delay(project.versions.get(slug=LATEST).pk)
msg = '(URL Build) Syncing versions for %s' % project.slug
pc_log.info(msg)
all_built[project.slug] = built
all_not_building[project.slug] = not_building
for project_slug, built in all_built.items():
if built:
msg = '(URL Build) Build Started: %s [%s]' % (
url, ' '.join(built))
pc_log.info(msg)
return HttpResponse(msg)
else:
pc_log_info(project_slug, msg=msg)
ret += msg
for project_slug, not_building in all_not_building.items():
if not_building:
msg = '(URL Build) Not Building: %s [%s]' % (
url, ' '.join(not_building))
pc_log.info(msg)
return HttpResponse(msg)
except Exception as e:
if e.__class__ == NoProjectException:
raise
msg = "(URL Build) Failed: %s:%s" % (url, e)
pc_log.error(msg, exc_info=True)
return HttpResponse(msg)
pc_log_info(project_slug, msg=msg)
ret += msg
if not ret:
ret = '(URL Build) No known branches were pushed to.'
return HttpResponse(ret)
@csrf_exempt
@ -303,7 +317,7 @@ def bitbucket_build(request):
rep = obj['repository']
branches = [rec.get('branch', '') for rec in obj['commits']]
ghetto_url = "%s%s" % (
"bitbucket.org", rep['absolute_url'].rstrip('/'))
"bitbucket.org", rep['absolute_url'].rstrip('/'))
pc_log.info("(Incoming Bitbucket Build) %s [%s]" % (
ghetto_url, ' '.join(branches)))
pc_log.info("(Incoming Bitbucket Build) JSON: \n\n%s\n\n" % obj)

View File

@ -101,7 +101,7 @@ class GitLabWebHookTest(BasePostCommitTest):
self.payload['ref'] = 'refs/heads/unknown'
r = self.client.post('/gitlab/', {'payload': json.dumps(self.payload)})
self.assertEqual(r.status_code, 200)
self.assertEqual(r.content, '(URL Build) Not Building: github.com/rtfd/readthedocs.org []')
self.assertEqual(r.content, '(URL Build) No known branches were pushed to.')
def test_gitlab_post_commit_knows_default_branches(self):
"""
@ -250,7 +250,7 @@ class GitHubPostCommitTest(BasePostCommitTest):
self.payload['ref'] = 'refs/heads/unknown'
r = self.client.post('/github/', {'payload': json.dumps(self.payload)})
self.assertEqual(r.status_code, 200)
self.assertEqual(r.content, '(URL Build) Not Building: github.com/rtfd/readthedocs.org []')
self.assertEqual(r.content, '(URL Build) No known branches were pushed to.')
def test_github_post_commit_knows_default_branches(self):
"""
@ -411,7 +411,7 @@ class BitBucketHookTests(BasePostCommitTest):
r = self.client.post('/bitbucket/', {'payload': json.dumps(self.hg_payload)})
self.assertEqual(r.status_code, 200)
self.assertEqual(
r.content, '(URL Build) Not Building: bitbucket.org/pip/pip []')
r.content, '(URL Build) No known branches were pushed to.')
def test_bitbucket_default_branch(self):
self.test_project = get(