|
| 1 | +:orphan: |
| 2 | + |
| 3 | +.. _high_performance_builders: |
| 4 | + |
| 5 | +Builders in Fedora Copr are too slow! |
| 6 | +===================================== |
| 7 | + |
| 8 | +The *normal* Fedora Copr builders are typically fast enough for the vast majority |
| 9 | +of package builds. However, some package builds are extremely |
| 10 | +resource-intensive, and our *normal builders* struggle with them. A notable |
| 11 | +example is Blink_-based browsers, which can take even more than 24 hours to |
| 12 | +build. |
| 13 | + |
| 14 | +From a build system perspective, this isn't a problem. You can simply specify |
| 15 | +``--timeout 180000`` (in seconds) and be prepared to wait for the build to |
| 16 | +finish. But if you want to expedite your builds, you do have the option to |
| 17 | +request *high-performance builders*. |
| 18 | + |
| 19 | +Pros & Cons of *high-performance builders* |
| 20 | +------------------------------------------ |
| 21 | + |
| 22 | +Once you get them, the *high-performance builders* will handle your builds much |
| 23 | +faster. According to the specification as of October 2023, they are |
| 24 | +approximately 8 times faster than the *normal builders*, but the actual speedup |
| 25 | +is very task-dependent. |
| 26 | + |
| 27 | +The downside is that they are in limited supply. If other users request them at |
| 28 | +the same time as you, you'll compete with others, and you may spend a bit longer |
| 29 | +waiting in the queue until one such machine is allocated for you (*starting* |
| 30 | +phase of the build). |
| 31 | + |
| 32 | +Also, because these machines are costly, we never pre-allocate them (as we do |
| 33 | +with the normal builders to generally minimize the initial waiting). We only |
| 34 | +start these *high-performance* ones when a specific build request them. Waiting |
| 35 | +for the corresponding machine to start may take several additional minutes. |
| 36 | + |
| 37 | +It's worth noting that when you configure your project, chroot, or package to |
| 38 | +use *high-performance builders*, you will get them, sooner or later. There's no |
| 39 | +magical "fallback to normal builders". **The rule of thumb** is to avoid using |
| 40 | +*high-performance builders* for builds that are expected to complete in less than |
| 41 | +two hours on *normal builders*. |
| 42 | + |
| 43 | +How to request *high-performance builders* |
| 44 | +------------------------------------------ |
| 45 | + |
| 46 | +As of October 2023, we only support *high-performance builders* for ``x86`` and |
| 47 | +``aarch64`` architectures. Please think carefully (ensure you understand the |
| 48 | +previous section) and submit an issue_. The pattern we have to configure for you |
| 49 | +is basically a Python regexp in a format ``owner/project/chroot/package``, e.g. |
| 50 | +``@asahi/kernel/.(x86_64|aarch64)/kernel.*``. |
| 51 | + |
| 52 | +.. _Blink: https://en.wikipedia.org/wiki/Blink_(browser_engine) |
| 53 | +.. _issue: https://github.com/fedora-copr/copr/issues |
0 commit comments