Eric Foo | 6ea4fbd | 2018-01-17 04:04:50 | [diff] [blame] | 1 | # LUCI Builder Migration - FAQ |
| 2 | |
| 3 | LUCI which stands for Layered Universal Continuous Integration is a replacement |
| 4 | for Buildbot (our existing single-threaded monolithic continuous integration |
| 5 | system). Over time, we have been swapping out Buildbot responsibilities with |
| 6 | LUCI services. As such, most builds today on Buildbot are already running using |
| 7 | LUCI services. The next step is to migrate Buildbot builders to LUCI builders, |
| 8 | with the end result to turndown Buildbot. |
| 9 | |
| 10 | As a Chromium developer, **read this** to understand the CQ and CI |
| 11 | user expectations and how to contact us. |
| 12 | |
| 13 | [TOC] |
| 14 | |
| 15 | ## FAQ |
| 16 | |
| 17 | ### **Why can't we keep using existing builders?** |
| 18 | |
| 19 | _The existing Buildbot builders are not running on the LUCI stack, as such, they |
| 20 | are still prone to Buildbot limitations such as single process scheduling and |
| 21 | deployment issues (restarts needed) to name a few. We have been in preparation |
| 22 | to migrate builders to LUCI with as minimal impact as possible to Chromium devs._ |
| 23 | |
| 24 | ### **What is the timeframe of migrating Buildbot builders to LUCI?** |
| 25 | |
| 26 | *We have started migration of existing Buildbot builders to LUCI builders in |
| 27 | **Q1 2018** and will first focus on the Chromium CQ builder sets. A Chromium |
| 28 | CQ builder set consists of try-builders that are part of the commit queue and their |
| 29 | corresponding waterfall (continuous integration) ci-builders. A builder set will |
| 30 | be migrated together whenever possible. Target migration time per builder set is |
| 31 | approx. 1 week per set with a few days of overlap with existing builders to |
| 32 | ensure correctness and performance. Note that times can vary per builder set.* |
| 33 | |
| 34 | ### **Who is involved with the builder migrations?** |
| 35 | |
| 36 | *We have created a LUCI migration task force |
| 37 | ([infra-dev@chromium.org](mailto:infra-dev@chromium.org)) comprised of Chrome |
| 38 | Operations developers. Owners of Chromium builders are responsible for approvals |
| 39 | for final go ahead to switch a LUCI builder to production.* |
| 40 | |
| 41 | ### **Where can I learn more about LUCI?** |
| 42 | |
| 43 | *A tour of LUCI is available in [presentation format](http://bit.ly/2kgyE9U). |
| 44 | Also, you can learn more about the [LUCI UI under Chromium |
| 45 | source](tour_of_luci_ui.md).* |
| 46 | |
| 47 | ### **Will the builder migration affect my work?** |
| 48 | |
| 49 | *No, there should be minimal to no disruption. Our migration plan is to make it |
| 50 | as seamless as possible for Chromium devs to continue their work and use our CQ |
| 51 | and CI systems effectively.* |
| 52 | |
| 53 | ### **What limitations does the migration have?** |
| 54 | |
| 55 | *While we're working to make the transition as seamless as possible, there can |
| 56 | be a few hiccups that may occur when a builder is migrated. Below are the |
| 57 | known limitations:* |
| 58 | |
| 59 | * *The blamelist will not be calculated correctly between the first LUCI build |
| 60 | and the last Buildbot build. The second and subsequent LUCI builds will have |
| 61 | correct blamelists, however.* |
| 62 | |
| 63 | ### **What differences will I see?** |
| 64 | |
| 65 | *All Chromium developers should already be using the new LUCI UI |
| 66 | ([ci.chromium.org](https://ci.chromium.org)). The views will continue to look the |
| 67 | same once LUCI builders are switched to production. Sheriff-O-Matic, |
| 68 | Gatekeeper, and Findit build integrations will all work as intended. The |
| 69 | main differences to expect are:* |
| 70 | |
| 71 | * *CQ try builders will show a LUCI tag in the Code Review UI. See |
| 72 | [below](#How-do-I-know-a-build-was-run-on-LUCI) for details.* |
| 73 | * *LUCI builder pages will have a different URL path. See [UI |
| 74 | tour](tour_of_luci_ui.md#builder-page) |
| 75 | for details.* |
| 76 | * *LUCI build pages will have a different URL path. See |
| 77 | [UI tour](tour_of_luci_ui.md#build-results-page) |
| 78 | for details.* |
| 79 | * *When the switch is made, build numbers will be incremented |
| 80 | by approximately +10 to separate Buildbot and LUCI |
| 81 | builds.* |
| 82 | * *Blamelist limitation between first LUCI and last |
| 83 | Buildbot builds. See |
| 84 | [above](#What-limitations-does-the-migration-have) for |
| 85 | details.* |
| 86 | |
| 87 | ### **How do I know a build was run on LUCI?** |
| 88 | |
| 89 | *Builds on LUCI use a different URL path that |
| 90 | starts with `/p/chromium/builders/…` |
| 91 | If the build is still running on Buildbot, |
| 92 | "buildbot" will still be part of the URL path. Also, in |
| 93 | the Code Review UI, try-builders running on LUCI are |
| 94 | shown with a LUCI tag as shown below.* |
| 95 | |
| 96 |  |
| 98 | |
| 99 | *In some cases, builds on LUCI can also have the |
| 100 | following URL |
| 101 | `ci.chromium.org/p/chromium/builds/b<buildbucket_build_id>`. |
| 102 | This occurs when the build does not have a build number |
| 103 | which should not occur for any Chromium build* |
| 104 | |
| 105 | ### **When will Buildbot be turned down?** |
| 106 | |
| 107 | _Buildbot builders will be turned down progressively and won't be turned down |
| 108 | all at once. Once a CQ builder set has completed migration, we will schedule a |
| 109 | date within the following month to turn down the corresponding Buildbot |
| 110 | builders. This date will be coordinated between the development teams and Chrome |
| 111 | Operations._ |
| 112 | |
| 113 | ### **How do I escalate for help?** |
| 114 | |
| 115 | _Contact the Chrome Operations Foundation team |
| 116 | ([infra-dev@chromium.org](mailto:infra-dev@chromium.org)) and include |
| 117 | [dpranke@chromium.org](mailto:dpranke@chromium.org), |
| 118 | [estaab@chromium.org](mailto:estaab@chromium.org), |
| 119 | [efoo@chromium.org](mailto:efoo@chromium.org) and |
| 120 | [nodir@chromium.org](mailto:nodir@chromium.org) directly for an immediate |
| 121 | response. Also, refer to the [Contact us](#Contact-Us) section below for other |
| 122 | options to reach us._ |
| 123 | |
| 124 | ### **What are the steps involved to migrate builders to LUCI bots?** |
| 125 | |
| 126 | _Builder migration involves 3 major steps._ |
| 127 | 1. _Preparation (machine allocation/configs)._ |
| 128 | 2. _Making builds work on LUCI (recipes)._ |
| 129 | 3. _Flipping to LUCI builder on prod (UI)._ |
| 130 | |
| 131 | ### **Can I help?** |
| 132 | |
| 133 | _There are many ways you can help. Either through contributing to LUCI, helping |
| 134 | with builder migrations or providing feedback. Reach out to the Chrome |
| 135 | Operations Foundation team |
| 136 | ([infra-dev@chromium.org](mailto:infra-dev@chromium.org)) and CC |
| 137 | [efoo@chromium.org](mailto:efoo@chromium.org) and |
| 138 | [estaab@chromium.org](mailto:estaab@chromium.org) to let us know._ |
| 139 | |
| 140 | ## **Contact Us** |
| 141 | |
| 142 | _We are continually making improvements to the migration process and to LUCI |
| 143 | services. Our initial goal is to migrate all Chromium CQ builders sets first as |
| 144 | seamless as possible for Chromium devs to continue to work unimpacted and use |
| 145 | our CQ and CI systems effectively._ |
| 146 | |
| 147 | _If you have issues or feedback you would like to share with us, we would love to |
| 148 | hear it and incorporate it into our ongoing LUCI improvements._ |
| 149 | |
| 150 | * _Use the __feedback button__  |
| 152 | on a LUCI page._ |
| 153 | * *__File a migration bug__ using the following |
Eric Foo | 71df3b8 | 2018-02-23 04:00:21 | [diff] [blame^] | 154 | [template](https://bugs.chromium.org/p/chromium/issues/entry?labels=LUCI-Backlog,LUCI-Migrations&summary=[LUCI-Migration-Bug]%20Enter%20an%20one-line%20summary&components=Infra>Platform&[email protected],[email protected],[email protected]&description=Please%20use%20this%20to%20template%20to%20file%20a%20bug%20into%20LUCI%20backlog.%20%20%0A%0AReminder%20to%20include%20the%20following%3A%0A-%20Description%20of%20issue%0A-%20Priority%0A-%20Is%20this%20a%20blocker...%0A-%20What%20builder%20is%20this%20bug%20blocking).* |
Eric Foo | 6ea4fbd | 2018-01-17 04:04:50 | [diff] [blame] | 155 | * *__File a feature request__ using the following |
Eric Foo | 71df3b8 | 2018-02-23 04:00:21 | [diff] [blame^] | 156 | [template](https://bugs.chromium.org/p/chromium/issues/entry?labels=LUCI-Backlog&summary=[LUCI-Feedback]%20Enter%20an%20one-line%20summary&components=Infra>Platform&[email protected],[email protected],[email protected]&description=Please%20use%20this%20to%20template%20to%20file%20a%20feature%20request%20into%20LUCI%20backlog.%20%20%0A%0AReminder%20to%20include%20the%20following%3A%0A-%20Description%0A-%20Why%20this%20feature%20is%20needed).* |
Eric Foo | 6ea4fbd | 2018-01-17 04:04:50 | [diff] [blame] | 157 | * *To __share your feedback__, please fill out this [short |
| 158 | survey](https://goo.gl/forms/YPO6XCQ3q47r00iw2).* |
| 159 | * *__Ask a question__ using [IRC under the #chromium](https://www.chromium.org/developers/irc) channel.* |
| 160 | * *__Contact us__ directly by emailing us at |
| 161 | [infra-dev@chromium.org](mailto:infra-dev@chromium.org).* |
| 162 | |