Skip to content

Commit

Permalink
Merge 9e34103 into 7075d6c
Browse files Browse the repository at this point in the history
  • Loading branch information
adusca committed Jun 29, 2015
2 parents 7075d6c + 9e34103 commit 9e5cd8b
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 5 deletions.
12 changes: 12 additions & 0 deletions mozci/platforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,3 +318,15 @@ def filter_buildernames(include, exclude, buildernames):
buildernames = filter(lambda x: word.lower() not in x.lower(), buildernames)

return sorted(buildernames)


def get_upstream_buildernames(repo_name):
"""Return every upstream buildername in a repo."""
buildernames = filter_buildernames([repo_name],
['hg bundle'],
fetch_allthethings_data()['builders'])
upstream_jobs = []
for buildername in buildernames:
if not is_downstream(buildername):
upstream_jobs.append(buildername)
return upstream_jobs
22 changes: 17 additions & 5 deletions mozci/scripts/trigger.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from mozci.mozci import backfill_revlist, trigger_range, \
query_repo_name_from_buildername, query_repo_url_from_buildername, query_builders
from mozci.platforms import get_upstream_buildernames
from mozci.sources.buildapi import find_all_by_status, make_retrigger_request, COALESCED
from mozci.sources.pushlog import query_revisions_range_from_revision_and_delta
from mozci.sources.pushlog import query_revisions_range, query_revision_info, query_pushid_range
Expand Down Expand Up @@ -89,6 +90,12 @@ def parse_args(argv=None):
help="Trigger every coalesced job on revision --rev "
"and repo --repo-name.")

parser.add_argument("--fill-in",
action="store_true",
dest="fill_in",
help="Fill in missing jobs at revision --rev "
"and repo --repo-name.")

parser.add_argument("--repo-name",
dest="repo_name",
help="Branch name")
Expand All @@ -99,10 +106,10 @@ def parse_args(argv=None):

def validate_options(options):
error_message = ""
if not options.buildernames and not options.coalesced:
error_message = "A buildername is mandatory for all modes except --coalesced. " \
"Use --buildername."
if options.coalesced and not options.repo_name:
if not options.buildernames and not (options.coalesced or options.fill_in):
error_message = "A buildername is mandatory for all modes except --coalesced " \
"and --fill-in. Use --buildername."
if (options.coalesced or options.fill_in) and not options.repo_name:
error_message = "A branch name is mandatory with --coalesced. Use --repo-name."

if options.back_revisions:
Expand Down Expand Up @@ -205,7 +212,12 @@ def main():

return

options.buildernames = sanitize_buildernames(options.buildernames)
if options.fill_in:
options.buildernames = get_upstream_buildernames(options.repo_name)

else:
options.buildernames = sanitize_buildernames(options.buildernames)

repo_url = query_repo_url_from_buildername(options.buildernames[0])

for buildername in options.buildernames:
Expand Down

0 comments on commit 9e5cd8b

Please sign in to comment.