def get_lang_latest_timestamp(): try: version_string = utils.get_latest_lang_version() except Exception as e: print('[Error] Failed to get ballerina packages version', e) sys.exit(1) lang_version = version_string.split("-") timestamp = create_timestamp(lang_version[2], lang_version[3]) return timestamp
def main(): global lang_version global extensions_file global all_modules global current_level_modules try: extensions_file = utils.read_json_file(constants.EXTENSIONS_FILE) except Exception as e: print('[Error] Error while loading modules list ', e) sys.exit(1) print("Workflow invoked of type '" + event_type + "'") if event_type == 'schedule' and not extensions_file['auto_bump']: print( "Schedule workflow invoked, exiting script as 'auto_bump' flag in modules_list.json is false." ) return if override_ballerina_version != '': lang_version = override_ballerina_version else: lang_version = utils.get_latest_lang_version() bal_version = {'version': lang_version} try: utils.write_json_file(constants.LANG_VERSION_FILE, bal_version) except Exception as e: print('Failed to write to file latest_ballerina_lang_version.json', e) sys.exit() try: updated_file_content = open(constants.LANG_VERSION_FILE, 'r').read() update = utils.commit_file( 'ballerina-release', constants.LANG_VERSION_FILE, updated_file_content, constants.EXTENSIONS_UPDATE_BRANCH, '[Automated] Update Workflow Lang Version')[0] if update: utils.open_pr_and_merge( 'ballerina-release', '[Automated] Update Dependency Bump Workflow Triggered Version', 'Update bumped ballerina lang version', constants.EXTENSIONS_UPDATE_BRANCH) else: print('No changes to ' + constants.LANG_VERSION_FILE + ' file') except GithubException as e: print( 'Error occurred while committing latest_ballerinalang_version.md', e) sys.exit(1) print('Workflow started with Ballerina Lang version : ' + lang_version) all_modules = extensions_file['modules'] last_level = all_modules[-1]['level'] print( 'Start dependency bump to extensions packed in ballerina-distribution') for i in range(last_level): current_level = i + 1 current_level_modules = list( filter(lambda s: s['level'] == current_level, all_modules)) for idx, module in enumerate(current_level_modules): print("[Info] Check lang dependency in module '" + module['name'] + "'") update_module(idx, current_level) if auto_merge_pull_requests.lower() == 'true': wait_for_current_level_build(current_level) print( 'Successfully bumped dependencies in extensions packed in ballerina-distribution' ) central_module_level = extensions_file['central_modules'][-1]['level'] print('Start dependency bump to extensions available only in central') for j in range(last_level, central_module_level): current_level = j + 1 current_level_modules = list( filter(lambda s: s['level'] == current_level, extensions_file['central_modules'])) for idx, module in enumerate(current_level_modules): print("[Info] Check lang dependency in module '" + module['name'] + "'") update_module(idx, current_level) if auto_merge_pull_requests.lower() == 'true': wait_for_current_level_build(current_level) print( 'Successfully bumped dependencies in extensions available in central')