@@ -52,12 +52,12 @@ proc run-job {job} {
set skip_globs [jobdb::read-runvar $flight $job skip_testids]
set nh [need-hosts/$jobinfo(recipe)]
- if {![string compare $nh BUILD]} {
+ if {[string match BUILD_* $nh]} {
set need_xen_hosts {}
- set need_build_host 1
+ set need_build_host [string range $nh [expr [string first _ $nh] + 1] end]
} else {
set need_xen_hosts $nh
- set need_build_host 0
+ set need_build_host {}
}
set nested_layers_hosts {}
@@ -68,7 +68,9 @@ proc run-job {job} {
eval run-ts broken = ts-hosts-allocate + $need_xen_hosts
}
- if {$need_build_host} { catching-otherwise broken allocate-build-host }
+ if {[llength $need_build_host]} {
+ catching-otherwise broken { allocate-build-host $need_build_host }
+ }
if {$ok} { setstatus running }
@@ -77,7 +79,11 @@ proc run-job {job} {
if {$ok} { set syslog [spawn-ts broken = | ts-syslog-server] }
- if {$need_build_host} { catching-otherwise broken prepare-build-host }
+ if {[llength $need_build_host]} {
+ catching-otherwise broken {
+ prepare-build-host-[string tolower $need_build_host]
+ }
+ }
per-host-ts broken host-install/@(*) ts-host-install-twice
@@ -95,7 +101,7 @@ proc run-job {job} {
set need_xen_hosts [lunappend nested_layers_hosts]
}
- if {$need_build_host && !$ok} {
+ if {[llength $need_build_host] && !$ok} {
run-ts !broken capture-logs ts-logs-capture + host
}
@@ -116,7 +122,7 @@ proc run-job {job} {
if {$ok} { setstatus pass }
- if {$need_build_host && $ok} { jobdb::preserve-task 90 }
+ if {[llength $need_build_host] && $ok} { jobdb::preserve-task 90 }
if {!$ok} {
jobdb::logputs stdout "job not ok"
@@ -671,11 +677,11 @@ proc need-hosts/host-examine-linux {} { examine-host-examine debian }
#---------- builds ----------
-proc need-hosts/build {} { return BUILD }
-proc need-hosts/build-kern {} { return BUILD }
-proc need-hosts/build-libvirt {} { return BUILD }
-proc need-hosts/build-rumprun {} { return BUILD }
-proc need-hosts/build-xtf {} { return BUILD }
+proc need-hosts/build {} { return BUILD_LINUX }
+proc need-hosts/build-kern {} { return BUILD_LINUX }
+proc need-hosts/build-libvirt {} { return BUILD_LINUX }
+proc need-hosts/build-rumprun {} { return BUILD_LINUX }
+proc need-hosts/build-xtf {} { return BUILD_LINUX }
proc run-job/build {} {
run-ts . = ts-xen-build
@@ -702,11 +708,11 @@ proc run-job/build-xtf {} {
run-ts . = ts-xtf-build
}
-proc allocate-build-host {} {
+proc allocate-build-host {ostype} {
global jobinfo
run-ts broken = ts-hosts-allocate + host
}
-proc prepare-build-host {} {
+proc prepare-build-host-linux {} {
global jobinfo
run-ts broken host-install(*) ts-host-install-twice
run-ts . host-build-prep ts-xen-build-prep
Make need_build_host store a string instead of a boolean. This is later going to be expanded to handle the FreeBSD build jobs. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- Changes since v4: - Fix the usage of the catching-otherwise blocks. Changes since v3: - New in this version (split from patch). --- sg-run-job | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-)