in ebcli/operations/commonops.py [0:0]
def create_app_version(app_name, process=False, label=None, message=None, staged=False, build_config=None, source_bundle=None):
cwd = os.getcwd()
fileoperations.ProjectRoot.traverse()
try:
if heuristics.directory_is_empty():
io.echo('NOTE: {}'.format(strings['appversion.none']))
return None
finally:
os.chdir(cwd)
source_control = SourceControl.get_source_control()
if source_control.untracked_changes_exist():
io.log_warning(strings['sc.unstagedchanges'])
if label:
version_label = label
else:
version_label = source_control.get_version_label()
if staged:
timestamp = datetime.now().strftime("%y%m%d_%H%M%S%f")
version_label = version_label + '-stage-' + timestamp
if message:
description = message
else:
description = source_control.get_message()
if len(description) > 200:
description = description[:195] + '...'
artifact = fileoperations.get_config_setting('deploy', 'artifact')
if artifact:
file_name, file_extension = os.path.splitext(artifact)
file_name = version_label + file_extension
file_path = artifact
s3_key = None
s3_bucket = None
else:
s3_bucket, s3_key = get_app_version_s3_location(app_name, version_label)
file_name, file_path = None, None
if s3_bucket is None and s3_key is None:
if not source_bundle:
file_name, file_path = _zip_up_project(
version_label, source_control, staged=staged)
elif zipfile.is_zipfile(source_bundle):
if not label:
label = f"{source_control.get_version_label()}.zip"
file_name, file_path = label, source_bundle
return handle_upload_target(
app_name,
s3_bucket,
s3_key,
file_name,
file_path,
version_label,
description,
process,
build_config,
)