[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v4 9/9] osstest: add FreeBSD Xen build job



To both the FreeBSD and the xen-unstable flights.

This is the runvar difference of all flights:

+freebsd-master build-amd64-xen-freebsd     all_host_os        freebsd
+freebsd-master build-amd64-xen-freebsd     all_hostflags      
PropEq:Firmware:bios:bios
+freebsd-master build-amd64-xen-freebsd     arch               amd64
+freebsd-master build-amd64-xen-freebsd     enable_ovmf
+freebsd-master build-amd64-xen-freebsd     enable_xend
+freebsd-master build-amd64-xen-freebsd     enable_xsm
+freebsd-master build-amd64-xen-freebsd     freebsdbuildjob    
build-amd64-freebsd
+freebsd-master build-amd64-xen-freebsd     host_hostflags     
arch-amd64,purpose-build
+freebsd-master build-amd64-xen-freebsd     recipe_testinstall true
+freebsd-master build-amd64-xen-freebsd     revision_minios
+freebsd-master build-amd64-xen-freebsd     revision_ovmf
+freebsd-master build-amd64-xen-freebsd     revision_qemu
+freebsd-master build-amd64-xen-freebsd     revision_qemuu     
ap-fetch-version-baseline:qemu-upstream-unstable
+freebsd-master build-amd64-xen-freebsd     revision_seabios
+freebsd-master build-amd64-xen-freebsd     revision_xen       
ap-fetch-version-baseline:xen-unstable
+freebsd-master build-amd64-xen-freebsd     tree_minios
+freebsd-master build-amd64-xen-freebsd     tree_ovmf
+freebsd-master build-amd64-xen-freebsd     tree_qemu          
git://xenbits.xen.org/qemu-xen-traditional.git
+freebsd-master build-amd64-xen-freebsd     tree_qemuu         
git://xenbits.xen.org/qemu-xen.git
+freebsd-master build-amd64-xen-freebsd     tree_seabios
+freebsd-master build-amd64-xen-freebsd     tree_xen           
git://xenbits.xen.org/xen.git
+xen-unstable   build-amd64-xen-freebsd     all_host_os        freebsd
+xen-unstable   build-amd64-xen-xsm-freebsd all_host_os        freebsd
+xen-unstable   build-amd64-xen-freebsd     all_hostflags      
PropEq:Firmware:bios:bios
+xen-unstable   build-amd64-xen-xsm-freebsd all_hostflags      
PropEq:Firmware:bios:bios
+xen-unstable   build-amd64-xen-freebsd     arch               amd64
+xen-unstable   build-amd64-xen-xsm-freebsd arch               amd64
+xen-unstable   build-amd64-xen-freebsd     build_lvextend_max 50
+xen-unstable   build-amd64-xen-xsm-freebsd build_lvextend_max 50
+xen-unstable   build-amd64-xen-freebsd     enable_livepatch   true
+xen-unstable   build-amd64-xen-xsm-freebsd enable_livepatch   true
+xen-unstable   build-amd64-xen-freebsd     enable_ovmf        false
+xen-unstable   build-amd64-xen-xsm-freebsd enable_ovmf        false
+xen-unstable   build-amd64-xen-freebsd     enable_xend        false
+xen-unstable   build-amd64-xen-xsm-freebsd enable_xend        false
+xen-unstable   build-amd64-xen-freebsd     enable_xsm         false
+xen-unstable   build-amd64-xen-xsm-freebsd enable_xsm         true
+xen-unstable   build-amd64-xen-freebsd     host_hostflags     
arch-amd64,purpose-build
+xen-unstable   build-amd64-xen-xsm-freebsd host_hostflags     
arch-amd64,purpose-build
+xen-unstable   build-amd64-xen-freebsd     revision_minios
+xen-unstable   build-amd64-xen-xsm-freebsd revision_minios
+xen-unstable   build-amd64-xen-freebsd     revision_ovmf
+xen-unstable   build-amd64-xen-xsm-freebsd revision_ovmf
+xen-unstable   build-amd64-xen-freebsd     revision_qemu
+xen-unstable   build-amd64-xen-xsm-freebsd revision_qemu
+xen-unstable   build-amd64-xen-freebsd     revision_qemuu     
ap-fetch-version-baseline:qemu-upstream-unstable
+xen-unstable   build-amd64-xen-xsm-freebsd revision_qemuu     
ap-fetch-version-baseline:qemu-upstream-unstable
+xen-unstable   build-amd64-xen-freebsd     revision_seabios
+xen-unstable   build-amd64-xen-xsm-freebsd revision_seabios
+xen-unstable   build-amd64-xen-freebsd     revision_xen       
ap-fetch-version:xen-unstable
+xen-unstable   build-amd64-xen-xsm-freebsd revision_xen       
ap-fetch-version:xen-unstable
+xen-unstable   build-amd64-xen-freebsd     tree_minios
+xen-unstable   build-amd64-xen-xsm-freebsd tree_minios
+xen-unstable   build-amd64-xen-freebsd     tree_ovmf
+xen-unstable   build-amd64-xen-xsm-freebsd tree_ovmf
+xen-unstable   build-amd64-xen-freebsd     tree_qemu          
git://xenbits.xen.org/qemu-xen-traditional.git
+xen-unstable   build-amd64-xen-xsm-freebsd tree_qemu          
git://xenbits.xen.org/qemu-xen-traditional.git
+xen-unstable   build-amd64-xen-freebsd     tree_qemuu         
git://xenbits.xen.org/qemu-xen.git
+xen-unstable   build-amd64-xen-xsm-freebsd tree_qemuu         
git://xenbits.xen.org/qemu-xen.git
+xen-unstable   build-amd64-xen-freebsd     tree_seabios
+xen-unstable   build-amd64-xen-xsm-freebsd tree_seabios
+xen-unstable   build-amd64-xen-freebsd     tree_xen           
git://xenbits.xen.org/xen.git
+xen-unstable   build-amd64-xen-xsm-freebsd tree_xen           
git://xenbits.xen.org/xen.git

Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
Changes since v2:
 - Only add FreeBSD Xen buildjobs to the xen-* branches.

Changes since v1:
 - Fix enabling of FreeBSD Xen buildjob based on branch.
 - Introduce a helper to add the FreeBSD Xen build jobs.
 - Introduce the ts-xen-build-freebsd wrapper around ts-xen-build for
   FreeBSD.
 - Introduce a create_xen_build_job helper.
---
 make-freebsd-flight   |  6 ++++++
 mfi-common            | 21 +++++++++++++++++++++
 sg-run-job            |  5 +++++
 ts-build-prep-freebsd |  5 ++++-
 ts-xen-build-freebsd  | 19 +++++++++++++++++++
 5 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100755 ts-xen-build-freebsd

diff --git a/make-freebsd-flight b/make-freebsd-flight
index 6c530ebe..d3c413b5 100755
--- a/make-freebsd-flight
+++ b/make-freebsd-flight
@@ -46,6 +46,12 @@ for arch in "$arches"; do
     freebsd_runvars="$freebsd_runvars freebsdbuildjob=build-$arch-freebsd \
                      recipe_testinstall=true"
     create_freebsd_build_job build-$arch-freebsd-again
+
+    # Create a Xen build job that's going to use the output from the first
+    # FreeBSD build job.
+    create_xen_build_job build-$arch-xen-freebsd build-xen-freebsd      \
+        host_hostflags=arch-$arch,purpose-build all_host_os=freebsd     \
+        $freebsd_runvars
 done
 
 echo $flight
diff --git a/mfi-common b/mfi-common
index b5af1771..614d3c10 100644
--- a/mfi-common
+++ b/mfi-common
@@ -235,6 +235,7 @@ create_build_jobs () {
   local enable_ovmf
   local build_hostflags
   local livepatch_runvars
+  local freebsd_runvars build_on_freebsd
 
   if [ "x$BUILD_LVEXTEND_MAX" != x ]; then
      BUILD_RUNVARS+=" build_lvextend_max=$BUILD_LVEXTEND_MAX "
@@ -245,6 +246,8 @@ create_build_jobs () {
 
     if [ "x$arch" = xdisable ]; then continue; fi
 
+    set_freebsd_runvars
+
     build_matrix_branch_filter_callback || continue
 
     case "$arch" in
@@ -321,6 +324,18 @@ create_build_jobs () {
     esac
     enable_prevovmf=${enable_prevovmf:-$enable_ovmf}
 
+    # Only add FreeBSD Xen buildjobs to the xen-* branches at the moment.
+    case "$branch" in
+    xen-*)
+      case "$xenbranch" in
+      xen-3.*-testing)  build_on_freebsd=false;;
+      xen-4.?-testing)  build_on_freebsd=false;;
+      xen-4.10-testing) build_on_freebsd=false;;
+      xen-4.11-testing) build_on_freebsd=false;;
+      *)                build_on_freebsd=true;;
+      esac;;
+    esac
+
     want_prevxen=n
     if branch_wants_migrupgrade_tests ; then
         # Only x86 for now
@@ -346,6 +361,12 @@ create_build_jobs () {
       fi
       create_xen_build_job build-$arch$xsm_suffix build                 \
         $hostos_runvars host_hostflags=$build_hostflags
+      if [ x$arch = xamd64 ] && [ x$build_on_freebsd = xtrue ] ; then
+        # OVMF doesn't compile on FreeBSD ATM, so forcefully disable it.
+        create_xen_build_job build-$arch-xen$xsm_suffix-freebsd         \
+          build-xen-freebsd host_hostflags=arch-$arch,purpose-build     \
+          all_host_os=freebsd $freebsd_runvars enable_ovmf=false
+      fi
     done
 
     if [ x$want_prevxen = xy ] ; then
diff --git a/sg-run-job b/sg-run-job
index d152051f..bbfe3f5b 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -712,6 +712,7 @@ 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 need-hosts/build-freebsd {}        { return BUILD_FREEBSD }
+proc need-hosts/build-xen-freebsd {}    { return BUILD_FREEBSD }
 
 proc run-job/build {} {
     run-ts . = ts-xen-build
@@ -742,6 +743,10 @@ proc run-job/build-freebsd {} {
     run-ts . = ts-freebsd-build
 }
 
+proc run-job/build-xen-freebsd {} {
+    run-ts . = ts-xen-build-freebsd + host
+}
+
 proc allocate-build-host {ostype} {
     global jobinfo
     switch -exact $ostype {
diff --git a/ts-build-prep-freebsd b/ts-build-prep-freebsd
index 3999ed79..e3220fa8 100755
--- a/ts-build-prep-freebsd
+++ b/ts-build-prep-freebsd
@@ -31,7 +31,10 @@ our $ho= selecthost($whhost);
 exit 0 if $ho->{SharedReady};
 
 sub install_deps () {
-    target_install_packages($ho, qw(git));
+    my @packages = qw(git glib pkgconf yajl gmake pixman markdown gettext
+                      python argp-standalone lzo2 git gcc binutils);
+
+    target_install_packages($ho, @packages);
 }
 
 install_deps();
diff --git a/ts-xen-build-freebsd b/ts-xen-build-freebsd
new file mode 100755
index 00000000..55f513e5
--- /dev/null
+++ b/ts-xen-build-freebsd
@@ -0,0 +1,19 @@
+#!/bin/sh
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2009-2018 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+set -ex
+./ts-xen-build "$@" -- clang=y SEABIOSCC=gcc SEABIOSLD=/usr/local/bin/ld
-- 
2.17.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.