You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.8 KiB
1.8 KiB
LUCI Hacks - A set of shims used to provide an iterable end-to-end demo.
The main goal of Luci Hakcs is to be able to use iterate on Milo as if it was displaying real data. These are a couple of hacks used to get LUCI running from "git cl try --luci" to displaying a page on Milo. These include:
luci_recipe_run.py:
- Downloading a depot_tools tarball onto swarming from Google Storage to bootstrap gclient. ** LUCI shouldn't require depot_tools or gclient.
- Running gclient on a swarming slave to bootstrap a full build+infra checkout. ** M1: This should check out the recipes repo instead. ** M2: The recipes repo should have been already isolated.
- Seeding properties by emitting annotation in stdout so that Milo can pick it up
- Running annotated_run.py from a fake build directory "build/slave/bot/build"
trigger_luci_job.py:
- Master/Builder -> Recipe + Platform mapping is hardcoded into this file. This is information that is otherwise encoded into master.cfg/slaves.cfg. ** Actually I lied, we just assume linux right now. ** M1: This information should be encoded into the recipe via luci.cfg
- Swarming client is checked out via "git clone "
- Swarming server is hard coded into the file. This info should also be pulled out from luci.cfg
- Triggering is done directly to swarming. Once Swarming is able to pull from DM we can send jobs to DM instead of swarming.
Misc:
- This just runs the full recipe on the bot. Yes, including bot_update. ** In the future this would be probably an isolated checkout? ** This also includes having git_cache either set up a local cache, or download the bootstrap zip file on every invocation. In reality there isn't a huge time penalty for doing this, but at scale it does incur a non-trival amount of unnecessary bandwidth.