def local_makefile_present(): if makefile_responds_to('cook-image'): sys.stderr.write("Local Makefile with 'cook-image' target deteced. Assuming --build\n") return True else: sys.stderr.write("No Makefile with 'cook-image' target detected. Assuming --pull\n") return False
def paasta_cook_image(args, service=None, soa_dir=None): """Build a docker image""" if service: service = service else: service = args.service if service and service.startswith('services-'): service = service.split('services-', 1)[1] validate_service_name(service, soa_dir) run_env = os.environ.copy() default_tag = 'paasta-cook-image-%s-%s' % (service, get_username()) tag = run_env.get('DOCKER_TAG', default_tag) run_env['DOCKER_TAG'] = tag if not makefile_responds_to('cook-image'): sys.stderr.write('ERROR: local-run now requires a cook-image target to be present in the Makefile. See ' 'http://y/paasta-contract and PAASTA-601 for more details.\n') sys.exit(1) try: cmd = 'make cook-image' returncode, output = _run( cmd, env=run_env, log=True, component='build', service=service, loglevel='debug' ) if returncode != 0: _log( service=service, line='ERROR: make cook-image failed for %s.' % service, component='build', level='event', ) sys.exit(returncode) except KeyboardInterrupt: sys.stderr.write('\nProcess interrupted by the user. Cancelling.\n') sys.exit(2)
def paasta_cook_image(args, service=None, soa_dir=None): """Build a docker image""" if service: service = service else: service = args.service if service and service.startswith('services-'): service = service.split('services-', 1)[1] validate_service_name(service, soa_dir) run_env = os.environ.copy() default_tag = 'paasta-cook-image-%s-%s' % (service, get_username()) tag = run_env.get('DOCKER_TAG', default_tag) run_env['DOCKER_TAG'] = tag if not makefile_responds_to('cook-image'): sys.stderr.write( 'ERROR: local-run now requires a cook-image target to be present in the Makefile. See ' 'http://y/paasta-contract and PAASTA-601 for more details.\n') sys.exit(1) try: cmd = 'make cook-image' returncode, output = _run(cmd, env=run_env, log=True, component='build', service=service, loglevel='debug') if returncode != 0: _log( service=service, line='ERROR: make cook-image failed for %s.' % service, component='build', level='event', ) sys.exit(returncode) except KeyboardInterrupt: sys.stderr.write('\nProcess interrupted by the user. Cancelling.\n') sys.exit(2)
def test_makefile_responds_to_run(mock_run): mock_run.return_value = (2, 'Output') actual = makefile_responds_to('non-present-target') assert actual is False
def test_makefile_responds_to_good(mock_run): mock_run.return_value = (1, 'Output') actual = makefile_responds_to('present-target') assert actual is True
def test_makefile_responds_to_run(mock_run): mock_run.return_value = (2, 'Output') actual = makefile_responds_to('non-present-target') assert actual is False
def test_makefile_responds_to_good(mock_run): mock_run.return_value = (1, 'Output') actual = makefile_responds_to('present-target') assert actual is True