last_good = yield release_worker.FindRunWorkflow( build_id, test.name) except release_worker.FindRunError, e: yield heartbeat('Could not find last good run for %s' % test.name) else: ref_image = last_good['image'] or None ref_log = last_good['log'] or None ref_url = last_good['url'] or None yield heartbeat('Uploading data for %s' % test.name) yield release_worker.ReportRunWorkflow(build_id, release_name, release_number, test.name, image_path=test.image_path, log_path=test.log_path, url=test.url, ref_image=ref_image, ref_log=ref_log, ref_url=ref_url, run_failed=test.run_failed) class DiffMyImages(workers.WorkflowItem): """Workflow for diffing set of images generated outside of Depicted. Args: release_url: URL of the newest and best version of the page. tests: List of Test objects to test. upload_build_id: Optional. Build ID of the site being compared. When supplied a new release will be cut for this build comparing it
image_path) except (process_worker.TimeoutError, OSError), e: failure_reason = str(e) else: capture_failed = returncode != 0 failure_reason = 'returncode=%s' % returncode # Don't upload bad captures, but always upload the error log. if capture_failed: image_path = None yield heartbeat('Reporting capture status to server') yield release_worker.ReportRunWorkflow(build_id, release_name, release_number, run_name, image_path=image_path, log_path=log_path, baseline=baseline, run_failed=capture_failed) if capture_failed: raise CaptureFailedError(FLAGS.capture_task_max_attempts, failure_reason) finally: shutil.rmtree(output_path, True) def register(coordinator): """Registers this module as a worker with the given coordinator.""" assert FLAGS.phantomjs_binary assert FLAGS.phantomjs_script