示例#1
0
def prereq(product, version, resolve, logger=LOGGER, config=CONFIG):
    """Add or resolve a prerequisite (pre gtb)
    product and version is also used to determine branch. e.g 57.0rc, 57.0.1, 57.0b2, 52.0.1esr
    Without any options, you will be prompted to add a prerequisite human task
    """
    validate_rw_repo(logger, config)
    release, data_path, wiki_path = get_release_info(product, version, logger, config)
    validate(release, logger, config, must_exist=True, must_exist_in="upcoming")
    data = load_json(data_path)

    resolve_msg = "Resolved {}".format(resolve) if resolve else ""
    commit_msg = "{} {} - updated prerequisites. {}".format(product, version, resolve_msg)
    data = update_prereq_human_tasks(data, resolve)

    data = order_data(data)
    write_and_commit(data, data_path, wiki_path, commit_msg, logger, config)
示例#2
0
def issue(product, version, resolve, logger=LOGGER, config=CONFIG):
    """Add or resolve an issue against current buildnum
    product and version is also used to determine branch. e.g 57.0rc, 57.0.1, 57.0b2, 52.0.1esr
    Without any options, you will be prompted to add an issue
    """
    validate_rw_repo(logger, config)
    release, data_path, wiki_path = get_release_info(product, version, logger, config)
    validate(release, logger, config, must_exist=True, must_exist_in="inflight")
    data = load_json(data_path)

    resolve_msg = "Resolved {}".format(resolve) if resolve else ""
    commit_msg = "{} {} - updated inflight issue. {}".format(product, version, resolve_msg)
    data = update_inflight_issue(data, resolve, logger)

    data = order_data(data)
    write_and_commit(data, data_path, wiki_path, commit_msg, logger, config)
示例#3
0
def graphid(graphid, product, version, phase, logger=LOGGER, config=CONFIG):
    """Add a graphid to a release.
    product and version is also used to determine branch. e.g 57.0rc, 57.0.1, 57.0b2, 52.0.1esr
    The phase must match the product.

    """
    validate_rw_repo(logger, config)
    release, data_path, wiki_path = get_release_info(product, version, logger, config)
    validate(release, logger, config, must_exist=True, must_exist_in="inflight")
    data = load_json(data_path)

    validate_phase(product, version, phase, logger, config)
    commit_msg = "{} {} - added {} graphid.".format(product, version, phase)
    data = update_inflight_graphid(data, phase, graphid, logger)

    data = order_data(data)
    write_and_commit(data, data_path, wiki_path, commit_msg, logger, config)
示例#4
0
def newbuild(product, version, logger=LOGGER, config=CONFIG):
    """Mark a release as submitted to shipit
    product and version is also used to determine branch. e.g 57.0rc, 57.0.1, 57.0b2, 52.0.1esr
    If this is the first buildnum, move the release from upcoming dir to inflight
    Otherwise, increment the buildnum of the already current inflight release
    """
    validate_rw_repo(logger, config)
    release, data_path, wiki_path = get_release_info(product, version, logger, config)
    validate(release, logger, config, must_exist=True)
    data = load_json(data_path)

    commit_msg = "{} {} - new buildnum started.".format(product, version)
    data, data_path, wiki_path = generate_newbuild_data(data, release, data_path,
                                                        wiki_path, logger, config)

    data = order_data(data)
    write_and_commit(data, data_path, wiki_path, commit_msg, logger, config)
示例#5
0
def task(product, version, resolve, logger=LOGGER, config=CONFIG):
    """Add or resolve a human task within current buildnum
    product and version is also used to determine branch. e.g 57.0rc, 57.0.1, 57.0b2, 52.0.1esr
    Without any options, you will be prompted to add a task
    """
    validate_rw_repo(logger, config)
    release, data_path, wiki_path = get_release_info(product, version, logger, config)
    # if we are adding a human_task, the release does not have to be inflight yet
    must_exist_in = "inflight" if resolve else None
    validate(release, logger, config, must_exist=True, must_exist_in=must_exist_in)
    data = load_json(data_path)

    resolve_msg = "Resolved {}".format(resolve) if resolve else ""
    commit_msg = "{} {} - updated inflight tasks. {}".format(product, version, resolve_msg)
    data = update_inflight_human_tasks(data, resolve, logger)

    data = order_data(data)
    write_and_commit(data, data_path, wiki_path, commit_msg, logger, config)