Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Unified Diff: luci_hacks/trigger_luci_job.py

Issue 2196843002: remove luci hacks (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « luci_hacks/luci_recipe_run.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: luci_hacks/trigger_luci_job.py
diff --git a/luci_hacks/trigger_luci_job.py b/luci_hacks/trigger_luci_job.py
deleted file mode 100755
index 84cdec8da15ca4bc131709f18747432ae928af67..0000000000000000000000000000000000000000
--- a/luci_hacks/trigger_luci_job.py
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-
-"""Tool to send a recipe job to run on Swarming."""
-
-
-import argparse
-import base64
-import json
-import os
-import re
-import subprocess
-import sys
-import zlib
-
-
-SWARMING_URL = 'https://chromium.googlesource.com/external/swarming.client.git'
-CLIENT_LOCATION = os.path.expanduser('~/.swarming_client')
-THIS_DIR = os.path.dirname(os.path.abspath(__file__))
-ISOLATE = os.path.join(THIS_DIR, 'luci_recipe_run.isolate')
-
-# This is put in place in order to not need to parse this information from
-# master.cfg. In the LUCI future this would all be stored in a luci.cfg
-# file alongside the repo.
-RECIPE_MAPPING = {
- 'Infra Linux Trusty 64 Tester':
- ('tryserver.infra', 'infra/infra_repo_trybot', 'Ubuntu-14.04'),
- 'Infra Linux Precise 32 Tester':
- ('tryserver.infra', 'infra/infra_repo_trybot', 'Ubuntu-12.04'),
- 'Infra Mac Tester':
- ('tryserver.infra', 'infra/infra_repo_trybot', 'Mac'),
- 'Infra Win Tester':
- ('tryserver.infra', 'infra/infra_repo_trybot', 'Win'),
- 'Infra Windows Tester':
- ('tryserver.infra', 'infra/infra_repo_trybot', 'Win'),
- 'Infra Presubmit':
- ('tryserver.infra', 'run_presubmit', 'Linux')
-}
-
-
-def parse_args(args):
- # Once Clank switches to bot_update, bot_update would no longer require
- # master/builder detection, and we can remove the master/builder from the args
- parser = argparse.ArgumentParser()
- parser.add_argument('--builder', required=True)
- parser.add_argument('--issue',required=True)
- parser.add_argument('--patchset', required=True)
- parser.add_argument('--revision', default='HEAD')
- parser.add_argument('--patch_project')
-
- return parser.parse_args(args)
-
-
-def ensure_swarming_client():
- if not os.path.exists(CLIENT_LOCATION):
- parent, target = os.path.split(CLIENT_LOCATION)
- subprocess.check_call(['git', 'clone', SWARMING_URL, target], cwd=parent)
- else:
- subprocess.check_call(['git', 'pull'], cwd=CLIENT_LOCATION)
-
-
-def archive_isolate(isolate):
- isolate_py = os.path.join(CLIENT_LOCATION, 'isolate.py')
- cmd = [
- sys.executable, isolate_py, 'archive',
- '--isolated=%sd' % isolate,
- '--isolate-server', 'https://isolateserver.appspot.com',
- '--isolate=%s' % isolate]
- out = subprocess.check_output(cmd)
- return out.split()[0].strip()
-
-
-def trigger_swarm(isolated, platform, build_props, factory_props):
- # TODO: Make this trigger DM instead.
- swarm_py = os.path.join(CLIENT_LOCATION, 'swarming.py')
- build_props_gz = base64.b64encode(zlib.compress(json.dumps(build_props)))
- fac_props_gz = base64.b64encode(zlib.compress(json.dumps(factory_props)))
- cmd = [
- sys.executable, swarm_py, 'trigger', isolated,
- '--isolate-server', 'isolateserver.appspot.com',
- '--swarming', 'chromium-swarm-dev.appspot.com',
- '-d', 'os', platform,
- '--',
- '--factory-properties-gz=%s' % fac_props_gz,
- '--build-properties-gz=%s' % build_props_gz
- ]
- out = subprocess.check_output(cmd)
- m = re.search(
- r'https://chromium-swarm-dev.appspot.com/user/task/(.*)', out)
- return m.group(1)
-
-
-def trigger(builder, revision, issue, patchset, project):
- """Constructs/uploads an isolated file and send the job to swarming."""
- master, recipe, platform = RECIPE_MAPPING[builder]
- build_props = {
- 'buildnumber': 1,
- 'buildername': builder,
- 'recipe': recipe,
- 'mastername': master,
- 'slavename': 'fakeslave',
- 'revision': revision,
- 'patch_project': project,
- }
- if issue:
- build_props['issue'] = issue
- if patchset:
- build_props['patchset'] = patchset
- factory_props = {
- 'recipe': recipe
- }
- ensure_swarming_client()
- arun_isolated = archive_isolate(ISOLATE)
- task = trigger_swarm(arun_isolated, platform, build_props, factory_props)
- print 'https://luci-milo.appspot.com/swarming/%s' % task
-
-
-def main(args):
- args = parse_args(args)
- trigger(args.builder, args.revision, args.issue,
- args.patchset, args.patch_project)
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
« no previous file with comments | « luci_hacks/luci_recipe_run.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698