def paasta_itest(args): """Build and test a docker image""" service = args.service if service and service.startswith("services-"): service = service.split("services-", 1)[1] validate_service_name(service) tag = build_docker_tag(service, args.commit) run_env = os.environ.copy() run_env["DOCKER_TAG"] = tag cmd = "make itest" loglines = [] _log(service=service, line="starting itest for %s." % args.commit, component="build", level="event") returncode, output = _run( cmd, env=run_env, timeout=3600, log=True, component="build", service=service, loglevel="debug" ) if returncode != 0: loglines.append("ERROR: itest failed for %s." % args.commit) output = get_jenkins_build_output_url() if output: loglines.append("See output: %s" % output) else: loglines.append("itest passed for %s." % args.commit) if not check_docker_image(service, args.commit): loglines.append("ERROR: itest has not created %s" % tag) returncode = 1 for logline in loglines: _log(service=service, line=logline, component="build", level="event") sys.exit(returncode)
def paasta_push_to_registry(args): """Upload a docker image to a registry""" service = args.service if service and service.startswith('services-'): service = service.split('services-', 1)[1] validate_service_name(service) cmd = build_command(service, args.commit) loglines = [] returncode, output = _run( cmd, timeout=3600, log=True, component='build', service=service, loglevel='debug' ) if returncode != 0: loglines.append('ERROR: Failed to promote image for %s.' % args.commit) output = get_jenkins_build_output_url() if output: loglines.append('See output: %s' % output) else: loglines.append('Successfully pushed image for %s to registry' % args.commit) for logline in loglines: _log( service=service, line=logline, component='build', level='event', ) sys.exit(returncode)
def get_loglines(returncode, cmd, output, args): loglines = [] if returncode != 0: loglines.append('ERROR: Failed to mark %s for deployment in %s.' % (args.commit, args.clusterinstance)) loglines.append("Ran: '%s'" % cmd) loglines.append("Output: %s" % output) output_url = get_jenkins_build_output_url() if output_url: loglines.append('See Jenkins output at %s' % output) else: loglines.append('Marked %s in %s for deployment.' % (args.commit, args.clusterinstance)) return loglines
def get_loglines(returncode, cmd, output, commit, cluster, instance): loglines = [] if returncode != 0: loglines.append('ERROR: Failed to mark %s for deployment in %s.%s.' % (commit, cluster, instance)) loglines.append("Ran: '%s'" % cmd) loglines.append("Output: %s" % output) output_url = get_jenkins_build_output_url() if output_url: loglines.append('See Jenkins output at %s' % output) else: loglines.append('Marked %s in %s.%s for deployment.' % (commit, cluster, instance)) return loglines
def paasta_itest(args): """Build and test a docker image""" service = args.service if service and service.startswith('services-'): service = service.split('services-', 1)[1] validate_service_name(service) tag = build_docker_tag(service, args.commit) run_env = os.environ.copy() run_env['DOCKER_TAG'] = tag cmd = "make itest" loglines = [] _log(service=service, line='starting itest for %s.' % args.commit, component='build', level='event') returncode, output = _run(cmd, env=run_env, timeout=3600, log=True, component='build', service=service, loglevel='debug') if returncode != 0: loglines.append('ERROR: itest failed for %s.' % args.commit) output = get_jenkins_build_output_url() if output: loglines.append('See output: %s' % output) else: loglines.append('itest passed for %s.' % args.commit) if not check_docker_image(service, args.commit): loglines.append('ERROR: itest has not created %s' % tag) returncode = 1 for logline in loglines: _log( service=service, line=logline, component='build', level='event', ) sys.exit(returncode)