Beispiel #1
0
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')