[opensuse-buildservice] OBS supports constraints now
After updating build.opensuse.org to current OBS code we have now support for build job constraints now. This means you can tell OBS to build a certain package, repository or project to build only on build hosts which grant a certain hardware or software feature. Just to name two examples, you can require a certain amount of memory or storage space. Or you can build on a special kind of build host which guarantees you that benchmark result can be compared between the build jobs. Please note that you limit your package to be dispatched to a subset of hosts. So it may dispatched way later or in worst case not at all when we do not have such a build host. This means it stays in "scheduled" state. We do _NOT_ have a "dispatchstatus" yet which would tell if a job is dispatchable at all or not. Please find details about this feature in our book chapter: http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_j... Just as an example, you may want to require a VM memory size of 2GB. You need add a "_constraints" file into your package source with this syntax: <constraints> <hardware> <memory unit=G>2</memory> </hardware> </constraints> Or you want to run on a specific new host, which we have to have comparable benchmarks. There is only running one build job on this hardware and it will always have the same hardware configuration. You need to use the hostlabel "benchmark" in our build.opensuse.org instance: <constraints> <hostlabel>benchmark</hostlabel> </constraints> -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On 11/08/2012 03:56 PM, Adrian Schröter wrote:
After updating build.opensuse.org to current OBS code we have now support for build job constraints now.
This means you can tell OBS to build a certain package, repository or project to build only on build hosts which grant a certain hardware or software feature.
Just to name two examples, you can require a certain amount of memory or storage space. Or you can build on a special kind of build host which guarantees you that benchmark result can be compared between the build jobs.
Please note that you limit your package to be dispatched to a subset of hosts. So it may dispatched way later or in worst case not at all when we do not have such a build host. This means it stays in "scheduled" state.
We do _NOT_ have a "dispatchstatus" yet which would tell if a job is dispatchable at all or not.
Please find details about this feature in our book chapter:
http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_j...
Just as an example, you may want to require a VM memory size of 2GB. You need add a "_constraints" file into your package source with this syntax:
<constraints> <hardware> <memory unit=G>2</memory> </hardware> </constraints>
Or you want to run on a specific new host, which we have to have comparable benchmarks. There is only running one build job on this hardware and it will always have the same hardware configuration. You need to use the hostlabel "benchmark" in our build.opensuse.org instance:
<constraints> <hostlabel>benchmark</hostlabel> </constraints>
Wouldn't it make sense how much resources a build job for $prj/$pkg/$arch/... took the last time and use this as a constraint for the next schedule instead of specifying this manually everywhere? Just as an example, people may get the idea that using <constraints> <hardware> <processors>4</processors> </hardware> </constraints> may speed up _their_ build jobs by over-using the more powerful workers ;-) -- With kind regards, Sascha Peilicke SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nuernberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer HRB 16746 (AG Nürnberg)
On Thu, Nov 8, 2012 at 1:16 PM, Sascha Peilicke <saschpe@suse.de> wrote:
Wouldn't it make sense how much resources a build job for $prj/$pkg/$arch/... took the last time and use this as a constraint for the next schedule instead of specifying this manually everywhere?
That would result in an ever-decreasing (ie: non-strict monotonically decreasing) set of build hosts. Not a good thing if you want your build jobs to keep building for a protracted period of time. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Am Donnerstag, 8. November 2012, 17:16:27 schrieb Sascha Peilicke:
On 11/08/2012 03:56 PM, Adrian Schröter wrote:
After updating build.opensuse.org to current OBS code we have now support for build job constraints now.
This means you can tell OBS to build a certain package, repository or project to build only on build hosts which grant a certain hardware or software feature.
Just to name two examples, you can require a certain amount of memory or storage space. Or you can build on a special kind of build host which guarantees you that benchmark result can be compared between the build jobs.
Please note that you limit your package to be dispatched to a subset of hosts. So it may dispatched way later or in worst case not at all when we do not have such a build host. This means it stays in "scheduled" state.
We do _NOT_ have a "dispatchstatus" yet which would tell if a job is dispatchable at all or not.
Please find details about this feature in our book chapter:
http://openbuildservice.org/help/manuals/obs-reference-guide/cha.obs.build_j...
Just as an example, you may want to require a VM memory size of 2GB. You need add a "_constraints" file into your package source with this syntax:
<constraints> <hardware> <memory unit=G>2</memory> </hardware> </constraints>
Or you want to run on a specific new host, which we have to have comparable benchmarks. There is only running one build job on this hardware and it will always have the same hardware configuration. You need to use the hostlabel "benchmark" in our build.opensuse.org instance:
<constraints> <hostlabel>benchmark</hostlabel> </constraints>
Wouldn't it make sense how much resources a build job for $prj/$pkg/$arch/... took the last time and use this as a constraint for the next schedule instead of specifying this manually everywhere?
That support is also half implemented, but not active yet. This is in first place atm for packages like the webkit packages which just fail always if they do not have the amount of memory.
Just as an example, people may get the idea that using
<constraints> <hardware> <processors>4</processors> </hardware> </constraints>
may speed up _their_ build jobs by over-using the more powerful workers ;-)
Yes, but it will also lead to way longer times in scheduling state. So in total you will not really steal time, in worst case you will even free one, because your package never starts to build ;) -- Adrian Schroeter SUSE Linux Products GmbH email: adrian@suse.de -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (3)
-
Adrian Schröter
-
Claudio Freire
-
Sascha Peilicke