[libvirt] [jenkins-ci PATCH v2 00/13] lcitool: Add 'build' action

Changes from [v1]: * rebase on top of master (985ab833be9b) and integrate recent changes to build rules on the Jenkins side; * build on more targets. [v1] https://www.redhat.com/archives/libvir-list/2018-August/msg00393.html Andrea Bolognani (13): projects: Add default machines for libvirt-dbus jobs: Rename git-url -> git_url jobs: Remove archive_format from defaults jobs: Move some parameters from jobs to defaults jobs: Declare empty values consistently guests: Add build jobs guests: Add build projects guests: Add build playbook lcitool: Make playbook execution generic lcitool: Add 'build' action lcitool: Support building arbitrary branches guests: Support building on more targets lcitool: Document build action guests/README.markdown | 19 +++ guests/lcitool | 109 ++++++++++-------- .../build/jobs/autotools-build-job.yml | 15 +++ .../build/jobs/autotools-check-job.yml | 16 +++ .../build/jobs/autotools-rpm-job.yml | 17 +++ .../build/jobs/autotools-syntax-check-job.yml | 12 ++ guests/playbooks/build/jobs/defaults.yml | 37 ++++++ .../build/jobs/generic-build-job.yml | 11 ++ .../build/jobs/generic-check-job.yml | 11 ++ .../playbooks/build/jobs/generic-rpm-job.yml | 11 ++ .../build/jobs/generic-syntax-check-job.yml | 11 ++ guests/playbooks/build/jobs/go-build-job.yml | 11 ++ guests/playbooks/build/jobs/go-check-job.yml | 11 ++ .../build/jobs/perl-modulebuild-build-job.yml | 13 +++ .../build/jobs/perl-modulebuild-check-job.yml | 11 ++ .../build/jobs/perl-modulebuild-rpm-job.yml | 16 +++ guests/playbooks/build/jobs/prepare.yml | 19 +++ .../build/jobs/python-distutils-build-job.yml | 13 +++ .../build/jobs/python-distutils-check-job.yml | 11 ++ .../build/jobs/python-distutils-rpm-job.yml | 12 ++ guests/playbooks/build/main.yml | 16 +++ guests/playbooks/build/projects/libosinfo.yml | 36 ++++++ .../playbooks/build/projects/libvirt-cim.yml | 10 ++ .../playbooks/build/projects/libvirt-dbus.yml | 44 +++++++ .../playbooks/build/projects/libvirt-glib.yml | 38 ++++++ .../build/projects/libvirt-go-xml.yml | 13 +++ .../playbooks/build/projects/libvirt-go.yml | 13 +++ .../playbooks/build/projects/libvirt-perl.yml | 19 +++ .../build/projects/libvirt-python.yml | 13 +++ .../build/projects/libvirt-sandbox.yml | 27 +++++ .../playbooks/build/projects/libvirt-tck.yml | 27 +++++ guests/playbooks/build/projects/libvirt.yml | 55 +++++++++ .../build/projects/osinfo-db-tools.yml | 36 ++++++ guests/playbooks/build/projects/osinfo-db.yml | 23 ++++ .../playbooks/build/projects/virt-manager.yml | 39 +++++++ .../playbooks/build/projects/virt-viewer.yml | 38 ++++++ jobs/autotools.yaml | 3 +- jobs/defaults.yaml | 8 +- jobs/generic.yaml | 3 +- jobs/go.yaml | 3 +- jobs/perl-modulebuild.yaml | 3 +- jobs/python-distutils.yaml | 3 +- projects/libosinfo.yaml | 3 +- projects/libvirt-cim.yaml | 3 +- projects/libvirt-dbus.yaml | 18 +-- projects/libvirt-glib.yaml | 3 +- projects/libvirt-go-xml.yaml | 3 +- projects/libvirt-go.yaml | 3 +- projects/libvirt-perl.yaml | 3 +- projects/libvirt-python.yaml | 3 +- projects/libvirt-sandbox.yaml | 3 +- projects/libvirt-tck.yaml | 3 +- projects/libvirt.yaml | 2 +- projects/osinfo-db-tools.yaml | 3 +- projects/osinfo-db.yaml | 2 +- projects/virt-manager.yaml | 3 +- projects/virt-viewer.yaml | 3 +- 57 files changed, 832 insertions(+), 82 deletions(-) create mode 100644 guests/playbooks/build/jobs/autotools-build-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-check-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-syntax-check-job.yml create mode 100644 guests/playbooks/build/jobs/defaults.yml create mode 100644 guests/playbooks/build/jobs/generic-build-job.yml create mode 100644 guests/playbooks/build/jobs/generic-check-job.yml create mode 100644 guests/playbooks/build/jobs/generic-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/generic-syntax-check-job.yml create mode 100644 guests/playbooks/build/jobs/go-build-job.yml create mode 100644 guests/playbooks/build/jobs/go-check-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-build-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-check-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/prepare.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-build-job.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-check-job.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-rpm-job.yml create mode 100644 guests/playbooks/build/main.yml create mode 100644 guests/playbooks/build/projects/libosinfo.yml create mode 100644 guests/playbooks/build/projects/libvirt-cim.yml create mode 100644 guests/playbooks/build/projects/libvirt-dbus.yml create mode 100644 guests/playbooks/build/projects/libvirt-glib.yml create mode 100644 guests/playbooks/build/projects/libvirt-go-xml.yml create mode 100644 guests/playbooks/build/projects/libvirt-go.yml create mode 100644 guests/playbooks/build/projects/libvirt-perl.yml create mode 100644 guests/playbooks/build/projects/libvirt-python.yml create mode 100644 guests/playbooks/build/projects/libvirt-sandbox.yml create mode 100644 guests/playbooks/build/projects/libvirt-tck.yml create mode 100644 guests/playbooks/build/projects/libvirt.yml create mode 100644 guests/playbooks/build/projects/osinfo-db-tools.yml create mode 100644 guests/playbooks/build/projects/osinfo-db.yml create mode 100644 guests/playbooks/build/projects/virt-manager.yml create mode 100644 guests/playbooks/build/projects/virt-viewer.yml -- 2.17.1

This doesn't change the results but brings it more in line with how other projects are defined and will help us out later. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- projects/libvirt-dbus.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/projects/libvirt-dbus.yaml b/projects/libvirt-dbus.yaml index f01ea9e..fdfb615 100644 --- a/projects/libvirt-dbus.yaml +++ b/projects/libvirt-dbus.yaml @@ -1,20 +1,20 @@ - project: name: libvirt-dbus + machines: + - libvirt-centos-7 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 title: Libvirt D-Bus archive_format: xz git-url: https://github.com/libvirt/libvirt-dbus.git jobs: - autotools-build-job: parent_jobs: 'libvirt-glib-master-build' - machines: - - libvirt-centos-7 - - libvirt-debian-9 - - libvirt-fedora-27 - - libvirt-fedora-28 - - libvirt-fedora-rawhide - - libvirt-freebsd-10 - - libvirt-freebsd-11 - autotools-syntax-check-job: parent_jobs: 'libvirt-dbus-master-build' machines: -- 2.17.1

Other user-defined variables use underscores as separator instead of dashes; this change will also help us out later. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- jobs/autotools.yaml | 2 +- jobs/generic.yaml | 2 +- jobs/go.yaml | 2 +- jobs/perl-modulebuild.yaml | 2 +- jobs/python-distutils.yaml | 2 +- projects/libosinfo.yaml | 2 +- projects/libvirt-cim.yaml | 2 +- projects/libvirt-dbus.yaml | 2 +- projects/libvirt-glib.yaml | 2 +- projects/libvirt-go-xml.yaml | 2 +- projects/libvirt-go.yaml | 2 +- projects/libvirt-perl.yaml | 2 +- projects/libvirt-python.yaml | 2 +- projects/libvirt-sandbox.yaml | 2 +- projects/libvirt-tck.yaml | 2 +- projects/libvirt.yaml | 2 +- projects/osinfo-db-tools.yaml | 2 +- projects/osinfo-db.yaml | 2 +- projects/virt-manager.yaml | 2 +- projects/virt-viewer.yaml | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/jobs/autotools.yaml b/jobs/autotools.yaml index f1ebf7b..cbd870a 100644 --- a/jobs/autotools.yaml +++ b/jobs/autotools.yaml @@ -21,7 +21,7 @@ num-to-keep: 1000 scm: - git: - url: '{git-url}' + url: '{git_url}' branches: - origin/{branch} clean: diff --git a/jobs/generic.yaml b/jobs/generic.yaml index 6c59c63..48bec23 100644 --- a/jobs/generic.yaml +++ b/jobs/generic.yaml @@ -21,7 +21,7 @@ num-to-keep: 1000 scm: - git: - url: '{git-url}' + url: '{git_url}' branches: - origin/{branch} clean: diff --git a/jobs/go.yaml b/jobs/go.yaml index 10518c4..77c931b 100644 --- a/jobs/go.yaml +++ b/jobs/go.yaml @@ -21,7 +21,7 @@ num-to-keep: 1000 scm: - git: - url: '{git-url}' + url: '{git_url}' branches: - origin/{branch} clean: diff --git a/jobs/perl-modulebuild.yaml b/jobs/perl-modulebuild.yaml index 3f3f537..fdd0817 100644 --- a/jobs/perl-modulebuild.yaml +++ b/jobs/perl-modulebuild.yaml @@ -21,7 +21,7 @@ num-to-keep: 1000 scm: - git: - url: '{git-url}' + url: '{git_url}' branches: - origin/{branch} clean: diff --git a/jobs/python-distutils.yaml b/jobs/python-distutils.yaml index 0b20b17..b5dc995 100644 --- a/jobs/python-distutils.yaml +++ b/jobs/python-distutils.yaml @@ -21,7 +21,7 @@ num-to-keep: 1000 scm: - git: - url: '{git-url}' + url: '{git_url}' branches: - origin/{branch} clean: diff --git a/projects/libosinfo.yaml b/projects/libosinfo.yaml index 22c957e..614eb63 100644 --- a/projects/libosinfo.yaml +++ b/projects/libosinfo.yaml @@ -3,7 +3,7 @@ name: libosinfo machines: '{all_machines}' title: libosinfo - git-url: https://gitlab.com/libosinfo/libosinfo.git + git_url: https://gitlab.com/libosinfo/libosinfo.git jobs: - autotools-build-job: parent_jobs: 'osinfo-db-master-build' diff --git a/projects/libvirt-cim.yaml b/projects/libvirt-cim.yaml index c6a7a6d..027c31d 100644 --- a/projects/libvirt-cim.yaml +++ b/projects/libvirt-cim.yaml @@ -3,7 +3,7 @@ name: libvirt-cim machines: '{rpm_machines}' title: libvirt CIM - git-url: https://github.com/libvirt/libvirt-cim.git + git_url: https://github.com/libvirt/libvirt-cim.git jobs: - autotools-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-dbus.yaml b/projects/libvirt-dbus.yaml index fdfb615..4fcf54a 100644 --- a/projects/libvirt-dbus.yaml +++ b/projects/libvirt-dbus.yaml @@ -11,7 +11,7 @@ - libvirt-freebsd-11 title: Libvirt D-Bus archive_format: xz - git-url: https://github.com/libvirt/libvirt-dbus.git + git_url: https://github.com/libvirt/libvirt-dbus.git jobs: - autotools-build-job: parent_jobs: 'libvirt-glib-master-build' diff --git a/projects/libvirt-glib.yaml b/projects/libvirt-glib.yaml index f61ca1e..dd2ba0c 100644 --- a/projects/libvirt-glib.yaml +++ b/projects/libvirt-glib.yaml @@ -3,7 +3,7 @@ name: libvirt-glib machines: '{all_machines}' title: Libvirt GLib - git-url: https://github.com/libvirt/libvirt-glib.git + git_url: https://github.com/libvirt/libvirt-glib.git jobs: - autotools-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-go-xml.yaml b/projects/libvirt-go-xml.yaml index 6eb7ef0..4e44561 100644 --- a/projects/libvirt-go-xml.yaml +++ b/projects/libvirt-go-xml.yaml @@ -3,7 +3,7 @@ name: libvirt-go-xml machines: '{all_machines}' title: Libvirt Go XML - git-url: https://github.com/libvirt/libvirt-go-xml.git + git_url: https://github.com/libvirt/libvirt-go-xml.git jobs: - go-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-go.yaml b/projects/libvirt-go.yaml index 0495374..7046dab 100644 --- a/projects/libvirt-go.yaml +++ b/projects/libvirt-go.yaml @@ -3,7 +3,7 @@ name: libvirt-go machines: '{all_machines}' title: Libvirt Go - git-url: https://github.com/libvirt/libvirt-go.git + git_url: https://github.com/libvirt/libvirt-go.git jobs: - go-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-perl.yaml b/projects/libvirt-perl.yaml index 956ba93..8426a67 100644 --- a/projects/libvirt-perl.yaml +++ b/projects/libvirt-perl.yaml @@ -3,7 +3,7 @@ name: libvirt-perl machines: '{all_machines}' title: Libvirt Perl - git-url: https://github.com/libvirt/libvirt-perl.git + git_url: https://github.com/libvirt/libvirt-perl.git jobs: - perl-modulebuild-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-python.yaml b/projects/libvirt-python.yaml index fdc55e0..69c1e17 100644 --- a/projects/libvirt-python.yaml +++ b/projects/libvirt-python.yaml @@ -3,7 +3,7 @@ name: libvirt-python machines: '{all_machines}' title: Libvirt Python - git-url: https://github.com/libvirt/libvirt-python.git + git_url: https://github.com/libvirt/libvirt-python.git jobs: - python-distutils-build-job: parent_jobs: 'libvirt-master-build' diff --git a/projects/libvirt-sandbox.yaml b/projects/libvirt-sandbox.yaml index da9bf77..e2fc5a9 100644 --- a/projects/libvirt-sandbox.yaml +++ b/projects/libvirt-sandbox.yaml @@ -8,7 +8,7 @@ - libvirt-fedora-28 - libvirt-fedora-rawhide title: Libvirt Sandbox - git-url: https://github.com/libvirt/libvirt-sandbox.git + git_url: https://github.com/libvirt/libvirt-sandbox.git jobs: - autotools-build-job: parent_jobs: 'libvirt-glib-master-build' diff --git a/projects/libvirt-tck.yaml b/projects/libvirt-tck.yaml index c406fda..5c940d7 100644 --- a/projects/libvirt-tck.yaml +++ b/projects/libvirt-tck.yaml @@ -10,7 +10,7 @@ - libvirt-freebsd-10 - libvirt-freebsd-11 title: Libvirt TCK - git-url: https://github.com/libvirt/libvirt-tck.git + git_url: https://github.com/libvirt/libvirt-tck.git jobs: - perl-modulebuild-build-job: parent_jobs: 'libvirt-perl-master-build' diff --git a/projects/libvirt.yaml b/projects/libvirt.yaml index c64ac5b..68aa284 100644 --- a/projects/libvirt.yaml +++ b/projects/libvirt.yaml @@ -4,7 +4,7 @@ machines: '{all_machines}' title: Libvirt archive_format: xz - git-url: https://github.com/libvirt/libvirt.git + git_url: https://github.com/libvirt/libvirt.git jobs: - autotools-build-job: parent_jobs: diff --git a/projects/osinfo-db-tools.yaml b/projects/osinfo-db-tools.yaml index d4cef11..ccc960b 100644 --- a/projects/osinfo-db-tools.yaml +++ b/projects/osinfo-db-tools.yaml @@ -3,7 +3,7 @@ name: osinfo-db-tools machines: '{all_machines}' title: osinfo database tools - git-url: https://gitlab.com/libosinfo/osinfo-db-tools.git + git_url: https://gitlab.com/libosinfo/osinfo-db-tools.git jobs: - autotools-build-job: parent_jobs: diff --git a/projects/osinfo-db.yaml b/projects/osinfo-db.yaml index d154c98..7a0c3c3 100644 --- a/projects/osinfo-db.yaml +++ b/projects/osinfo-db.yaml @@ -4,7 +4,7 @@ machines: '{all_machines}' title: osinfo database archive_format: xz - git-url: https://gitlab.com/libosinfo/osinfo-db.git + git_url: https://gitlab.com/libosinfo/osinfo-db.git jobs: - generic-build-job: parent_jobs: 'osinfo-db-tools-master-build' diff --git a/projects/virt-manager.yaml b/projects/virt-manager.yaml index 84a95a6..3921a68 100644 --- a/projects/virt-manager.yaml +++ b/projects/virt-manager.yaml @@ -9,7 +9,7 @@ - libvirt-freebsd-10 - libvirt-freebsd-11 title: Virtual Machine Manager - git-url: https://github.com/virt-manager/virt-manager.git + git_url: https://github.com/virt-manager/virt-manager.git jobs: - python-distutils-build-job: parent_jobs: diff --git a/projects/virt-viewer.yaml b/projects/virt-viewer.yaml index e68a23b..1678d7c 100644 --- a/projects/virt-viewer.yaml +++ b/projects/virt-viewer.yaml @@ -3,7 +3,7 @@ name: virt-viewer machines: '{all_machines}' title: Virt Viewer - git-url: https://pagure.io/virt-viewer.git + git_url: https://pagure.io/virt-viewer.git jobs: - autotools-build-job: parent_jobs: 'libvirt-glib-master-build' -- 2.17.1

Instead of defining a default and overriding it on a case-by-case basis, always define archive_format at the project level. This adds a bit of duplication, but it's consistent with how we define other metadata for projects and it will help us out later. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- jobs/defaults.yaml | 1 - projects/libosinfo.yaml | 1 + projects/libvirt-cim.yaml | 1 + projects/libvirt-glib.yaml | 1 + projects/libvirt-go-xml.yaml | 1 + projects/libvirt-go.yaml | 1 + projects/libvirt-perl.yaml | 1 + projects/libvirt-python.yaml | 1 + projects/libvirt-sandbox.yaml | 1 + projects/libvirt-tck.yaml | 1 + projects/osinfo-db-tools.yaml | 1 + projects/virt-manager.yaml | 1 + projects/virt-viewer.yaml | 1 + 13 files changed, 12 insertions(+), 1 deletion(-) diff --git a/jobs/defaults.yaml b/jobs/defaults.yaml index eb04f32..de56226 100644 --- a/jobs/defaults.yaml +++ b/jobs/defaults.yaml @@ -20,7 +20,6 @@ - libvirt-fedora-rawhide mingw_machines: - libvirt-fedora-rawhide - archive_format: gz global_env: | local_env: | mingw32_local_env: | diff --git a/projects/libosinfo.yaml b/projects/libosinfo.yaml index 614eb63..55a4817 100644 --- a/projects/libosinfo.yaml +++ b/projects/libosinfo.yaml @@ -3,6 +3,7 @@ name: libosinfo machines: '{all_machines}' title: libosinfo + archive_format: gz git_url: https://gitlab.com/libosinfo/libosinfo.git jobs: - autotools-build-job: diff --git a/projects/libvirt-cim.yaml b/projects/libvirt-cim.yaml index 027c31d..6d524df 100644 --- a/projects/libvirt-cim.yaml +++ b/projects/libvirt-cim.yaml @@ -3,6 +3,7 @@ name: libvirt-cim machines: '{rpm_machines}' title: libvirt CIM + archive_format: gz git_url: https://github.com/libvirt/libvirt-cim.git jobs: - autotools-build-job: diff --git a/projects/libvirt-glib.yaml b/projects/libvirt-glib.yaml index dd2ba0c..993024a 100644 --- a/projects/libvirt-glib.yaml +++ b/projects/libvirt-glib.yaml @@ -3,6 +3,7 @@ name: libvirt-glib machines: '{all_machines}' title: Libvirt GLib + archive_format: gz git_url: https://github.com/libvirt/libvirt-glib.git jobs: - autotools-build-job: diff --git a/projects/libvirt-go-xml.yaml b/projects/libvirt-go-xml.yaml index 4e44561..7e6e090 100644 --- a/projects/libvirt-go-xml.yaml +++ b/projects/libvirt-go-xml.yaml @@ -3,6 +3,7 @@ name: libvirt-go-xml machines: '{all_machines}' title: Libvirt Go XML + archive_format: gz git_url: https://github.com/libvirt/libvirt-go-xml.git jobs: - go-build-job: diff --git a/projects/libvirt-go.yaml b/projects/libvirt-go.yaml index 7046dab..d90339a 100644 --- a/projects/libvirt-go.yaml +++ b/projects/libvirt-go.yaml @@ -3,6 +3,7 @@ name: libvirt-go machines: '{all_machines}' title: Libvirt Go + archive_format: gz git_url: https://github.com/libvirt/libvirt-go.git jobs: - go-build-job: diff --git a/projects/libvirt-perl.yaml b/projects/libvirt-perl.yaml index 8426a67..dbb6caf 100644 --- a/projects/libvirt-perl.yaml +++ b/projects/libvirt-perl.yaml @@ -3,6 +3,7 @@ name: libvirt-perl machines: '{all_machines}' title: Libvirt Perl + archive_format: gz git_url: https://github.com/libvirt/libvirt-perl.git jobs: - perl-modulebuild-build-job: diff --git a/projects/libvirt-python.yaml b/projects/libvirt-python.yaml index 69c1e17..05eea41 100644 --- a/projects/libvirt-python.yaml +++ b/projects/libvirt-python.yaml @@ -3,6 +3,7 @@ name: libvirt-python machines: '{all_machines}' title: Libvirt Python + archive_format: gz git_url: https://github.com/libvirt/libvirt-python.git jobs: - python-distutils-build-job: diff --git a/projects/libvirt-sandbox.yaml b/projects/libvirt-sandbox.yaml index e2fc5a9..274d033 100644 --- a/projects/libvirt-sandbox.yaml +++ b/projects/libvirt-sandbox.yaml @@ -8,6 +8,7 @@ - libvirt-fedora-28 - libvirt-fedora-rawhide title: Libvirt Sandbox + archive_format: gz git_url: https://github.com/libvirt/libvirt-sandbox.git jobs: - autotools-build-job: diff --git a/projects/libvirt-tck.yaml b/projects/libvirt-tck.yaml index 5c940d7..7824445 100644 --- a/projects/libvirt-tck.yaml +++ b/projects/libvirt-tck.yaml @@ -10,6 +10,7 @@ - libvirt-freebsd-10 - libvirt-freebsd-11 title: Libvirt TCK + archive_format: gz git_url: https://github.com/libvirt/libvirt-tck.git jobs: - perl-modulebuild-build-job: diff --git a/projects/osinfo-db-tools.yaml b/projects/osinfo-db-tools.yaml index ccc960b..bcf9e0a 100644 --- a/projects/osinfo-db-tools.yaml +++ b/projects/osinfo-db-tools.yaml @@ -3,6 +3,7 @@ name: osinfo-db-tools machines: '{all_machines}' title: osinfo database tools + archive_format: gz git_url: https://gitlab.com/libosinfo/osinfo-db-tools.git jobs: - autotools-build-job: diff --git a/projects/virt-manager.yaml b/projects/virt-manager.yaml index 3921a68..9d270db 100644 --- a/projects/virt-manager.yaml +++ b/projects/virt-manager.yaml @@ -9,6 +9,7 @@ - libvirt-freebsd-10 - libvirt-freebsd-11 title: Virtual Machine Manager + archive_format: gz git_url: https://github.com/virt-manager/virt-manager.git jobs: - python-distutils-build-job: diff --git a/projects/virt-viewer.yaml b/projects/virt-viewer.yaml index 1678d7c..f959ee0 100644 --- a/projects/virt-viewer.yaml +++ b/projects/virt-viewer.yaml @@ -3,6 +3,7 @@ name: virt-viewer machines: '{all_machines}' title: Virt Viewer + archive_format: gz git_url: https://pagure.io/virt-viewer.git jobs: - autotools-build-job: -- 2.17.1

The affected parameters are autogen_args, command and command_pre_build. Moving their default value next to the other overridable defaults makes sense, and it will help us out later. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- jobs/autotools.yaml | 1 - jobs/defaults.yaml | 3 +++ jobs/generic.yaml | 1 - jobs/go.yaml | 1 - jobs/perl-modulebuild.yaml | 1 - jobs/python-distutils.yaml | 1 - 6 files changed, 3 insertions(+), 5 deletions(-) diff --git a/jobs/autotools.yaml b/jobs/autotools.yaml index cbd870a..f41bc4b 100644 --- a/jobs/autotools.yaml +++ b/jobs/autotools.yaml @@ -4,7 +4,6 @@ name: '{name}-{branch}-build{variant}' project-type: matrix description: '{title} Build' - autogen_args: '' workspace: '{name}-{branch}{variant}' child-workspace: '.' block-downstream: true diff --git a/jobs/defaults.yaml b/jobs/defaults.yaml index de56226..11fb086 100644 --- a/jobs/defaults.yaml +++ b/jobs/defaults.yaml @@ -22,6 +22,9 @@ - libvirt-fedora-rawhide global_env: | local_env: | + autogen_args: '' + command: '' + command_pre_build: '' mingw32_local_env: | export VIRT_PREFIX="$VIRT_PREFIX/i686-w64-mingw32/sys-root/mingw" export PKG_CONFIG_PATH="$VIRT_PREFIX/lib/pkgconfig" diff --git a/jobs/generic.yaml b/jobs/generic.yaml index 48bec23..805b1d6 100644 --- a/jobs/generic.yaml +++ b/jobs/generic.yaml @@ -4,7 +4,6 @@ name: '{name}-{branch}-build{variant}' project-type: matrix description: '{title} Build' - autogen_args: '' workspace: '{name}-{branch}{variant}' child-workspace: '.' block-downstream: true diff --git a/jobs/go.yaml b/jobs/go.yaml index 77c931b..b460658 100644 --- a/jobs/go.yaml +++ b/jobs/go.yaml @@ -4,7 +4,6 @@ name: '{name}-{branch}-build{variant}' project-type: matrix description: '{title} Build' - autogen_args: '' workspace: '{name}-{branch}{variant}' child-workspace: '.' block-downstream: true diff --git a/jobs/perl-modulebuild.yaml b/jobs/perl-modulebuild.yaml index fdd0817..97f694d 100644 --- a/jobs/perl-modulebuild.yaml +++ b/jobs/perl-modulebuild.yaml @@ -4,7 +4,6 @@ name: '{name}-{branch}-build{variant}' project-type: matrix description: '{title} Build' - autogen_args: '' workspace: '{name}-{branch}{variant}' child-workspace: '.' block-downstream: true diff --git a/jobs/python-distutils.yaml b/jobs/python-distutils.yaml index b5dc995..ddd149d 100644 --- a/jobs/python-distutils.yaml +++ b/jobs/python-distutils.yaml @@ -4,7 +4,6 @@ name: '{name}-{branch}-build{variant}' project-type: matrix description: '{title} Build' - command_pre_build: '' workspace: '{name}-{branch}{variant}' child-workspace: '.' block-downstream: true -- 2.17.1

The pipe syntax is intended for multi-line preformatted text, and is abused here. Use a saner syntax instead. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- jobs/defaults.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jobs/defaults.yaml b/jobs/defaults.yaml index 11fb086..d97c3b5 100644 --- a/jobs/defaults.yaml +++ b/jobs/defaults.yaml @@ -20,8 +20,8 @@ - libvirt-fedora-rawhide mingw_machines: - libvirt-fedora-rawhide - global_env: | - local_env: | + global_env: '' + local_env: '' autogen_args: '' command: '' command_pre_build: '' -- 2.17.1

These tasks mirror the Jenkins jobs contained in the top-level jobs/ directory. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- .../build/jobs/autotools-build-job.yml | 15 ++++++++ .../build/jobs/autotools-check-job.yml | 16 +++++++++ .../build/jobs/autotools-rpm-job.yml | 17 ++++++++++ .../build/jobs/autotools-syntax-check-job.yml | 12 +++++++ guests/playbooks/build/jobs/defaults.yml | 34 +++++++++++++++++++ .../build/jobs/generic-build-job.yml | 11 ++++++ .../build/jobs/generic-check-job.yml | 11 ++++++ .../playbooks/build/jobs/generic-rpm-job.yml | 11 ++++++ .../build/jobs/generic-syntax-check-job.yml | 11 ++++++ guests/playbooks/build/jobs/go-build-job.yml | 11 ++++++ guests/playbooks/build/jobs/go-check-job.yml | 11 ++++++ .../build/jobs/perl-modulebuild-build-job.yml | 13 +++++++ .../build/jobs/perl-modulebuild-check-job.yml | 11 ++++++ .../build/jobs/perl-modulebuild-rpm-job.yml | 16 +++++++++ guests/playbooks/build/jobs/prepare.yml | 19 +++++++++++ .../build/jobs/python-distutils-build-job.yml | 13 +++++++ .../build/jobs/python-distutils-check-job.yml | 11 ++++++ .../build/jobs/python-distutils-rpm-job.yml | 12 +++++++ 18 files changed, 255 insertions(+) create mode 100644 guests/playbooks/build/jobs/autotools-build-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-check-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/autotools-syntax-check-job.yml create mode 100644 guests/playbooks/build/jobs/defaults.yml create mode 100644 guests/playbooks/build/jobs/generic-build-job.yml create mode 100644 guests/playbooks/build/jobs/generic-check-job.yml create mode 100644 guests/playbooks/build/jobs/generic-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/generic-syntax-check-job.yml create mode 100644 guests/playbooks/build/jobs/go-build-job.yml create mode 100644 guests/playbooks/build/jobs/go-check-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-build-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-check-job.yml create mode 100644 guests/playbooks/build/jobs/perl-modulebuild-rpm-job.yml create mode 100644 guests/playbooks/build/jobs/prepare.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-build-job.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-check-job.yml create mode 100644 guests/playbooks/build/jobs/python-distutils-rpm-job.yml diff --git a/guests/playbooks/build/jobs/autotools-build-job.yml b/guests/playbooks/build/jobs/autotools-build-job.yml new file mode 100644 index 0000000..bb621a1 --- /dev/null +++ b/guests/playbooks/build/jobs/autotools-build-job.yml @@ -0,0 +1,15 @@ +--- +- name: '{{ name }}-{{ branch }}-build{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + mkdir build + cd build + ../autogen.sh --prefix=$VIRT_PREFIX {{ autogen_args }} + $MAKE + $MAKE install + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/autotools-check-job.yml b/guests/playbooks/build/jobs/autotools-check-job.yml new file mode 100644 index 0000000..50024ae --- /dev/null +++ b/guests/playbooks/build/jobs/autotools-check-job.yml @@ -0,0 +1,16 @@ +--- +- name: '{{ name }}-{{ branch }}-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + cd build + if ! $MAKE check + then + cat tests/test-suite.log || true + exit 1 + fi + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/autotools-rpm-job.yml b/guests/playbooks/build/jobs/autotools-rpm-job.yml new file mode 100644 index 0000000..472ed8f --- /dev/null +++ b/guests/playbooks/build/jobs/autotools-rpm-job.yml @@ -0,0 +1,17 @@ +--- +- name: '{{ name }}-{{ branch }}-rpm{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + cd build + sed -i -e 's/BuildRequires: osinfo-db.*//' {{ name }}.spec + sed -i -e 's/BuildRequires: libvirt.*devel.*//' {{ name }}.spec + sed -i -e 's/BuildRequires: pkgconfig(libvirt.*).*//' {{ name }}.spec + rm -f *.tar.{{ archive_format }} + $MAKE dist + rpmbuild --clean --define "_topdir `pwd`/rpmbuild" -ta {{ name }}-*.tar.{{ archive_format }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/autotools-syntax-check-job.yml b/guests/playbooks/build/jobs/autotools-syntax-check-job.yml new file mode 100644 index 0000000..bbbd240 --- /dev/null +++ b/guests/playbooks/build/jobs/autotools-syntax-check-job.yml @@ -0,0 +1,12 @@ +--- +- name: '{{ name }}-{{ branch }}-syntax-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + cd build + $MAKE syntax-check + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/defaults.yml b/guests/playbooks/build/jobs/defaults.yml new file mode 100644 index 0000000..2e4a078 --- /dev/null +++ b/guests/playbooks/build/jobs/defaults.yml @@ -0,0 +1,34 @@ +--- +branch: master +variant: '' +all_machines: + - libvirt-centos-7 + - libvirt-debian-8 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 +rpm_machines: + - libvirt-centos-7 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide +mingw_machines: + - libvirt-fedora-rawhide +global_env: '' +local_env: '' +autogen_args: '' +command: '' +command_pre_build: '' +mingw32_local_env: | + export VIRT_PREFIX="$VIRT_PREFIX/i686-w64-mingw32/sys-root/mingw" + export PKG_CONFIG_PATH="$VIRT_PREFIX/lib/pkgconfig" + export PKG_CONFIG_LIBDIR="/usr/i686-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/i686-w64-mingw32/sys-root/mingw/share/pkgconfig" +mingw32_autogen_args: --host=i686-w64-mingw32 +mingw64_local_env: | + export VIRT_PREFIX="$VIRT_PREFIX/x86_64-w64-mingw32/sys-root/mingw" + export PKG_CONFIG_PATH="$VIRT_PREFIX/lib/pkgconfig" + export PKG_CONFIG_LIBDIR="/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig:/usr/x86_64-w64-mingw32/sys-root/mingw/share/pkgconfig" +mingw64_autogen_args: --host=x86_64-w64-mingw32 diff --git a/guests/playbooks/build/jobs/generic-build-job.yml b/guests/playbooks/build/jobs/generic-build-job.yml new file mode 100644 index 0000000..5519eee --- /dev/null +++ b/guests/playbooks/build/jobs/generic-build-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-build{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + {{ command }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/generic-check-job.yml b/guests/playbooks/build/jobs/generic-check-job.yml new file mode 100644 index 0000000..00fbce3 --- /dev/null +++ b/guests/playbooks/build/jobs/generic-check-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + {{ command }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/generic-rpm-job.yml b/guests/playbooks/build/jobs/generic-rpm-job.yml new file mode 100644 index 0000000..1db4ea4 --- /dev/null +++ b/guests/playbooks/build/jobs/generic-rpm-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-rpm{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + {{ command }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/generic-syntax-check-job.yml b/guests/playbooks/build/jobs/generic-syntax-check-job.yml new file mode 100644 index 0000000..72885f1 --- /dev/null +++ b/guests/playbooks/build/jobs/generic-syntax-check-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-syntax-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + {{ command }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/go-build-job.yml b/guests/playbooks/build/jobs/go-build-job.yml new file mode 100644 index 0000000..8a3ebb9 --- /dev/null +++ b/guests/playbooks/build/jobs/go-build-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-build{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + go build -v + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/go-check-job.yml b/guests/playbooks/build/jobs/go-check-job.yml new file mode 100644 index 0000000..dda7998 --- /dev/null +++ b/guests/playbooks/build/jobs/go-check-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + go test $TEST_ARGS + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/perl-modulebuild-build-job.yml b/guests/playbooks/build/jobs/perl-modulebuild-build-job.yml new file mode 100644 index 0000000..030e713 --- /dev/null +++ b/guests/playbooks/build/jobs/perl-modulebuild-build-job.yml @@ -0,0 +1,13 @@ +--- +- name: '{{ name }}-{{ branch }}-build{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + perl Build.PL install_base="$VIRT_PREFIX" + perl Build + perl Build install + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/perl-modulebuild-check-job.yml b/guests/playbooks/build/jobs/perl-modulebuild-check-job.yml new file mode 100644 index 0000000..165e868 --- /dev/null +++ b/guests/playbooks/build/jobs/perl-modulebuild-check-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + perl Build test + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/perl-modulebuild-rpm-job.yml b/guests/playbooks/build/jobs/perl-modulebuild-rpm-job.yml new file mode 100644 index 0000000..168fbe1 --- /dev/null +++ b/guests/playbooks/build/jobs/perl-modulebuild-rpm-job.yml @@ -0,0 +1,16 @@ +--- +- name: '{{ name }}-{{ branch }}-rpm{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + sed -i -e 's/BuildRequires: *perl-Sys-Virt.*//' *.spec + sed -i -e 's/BuildRequires: *perl(Sys::Virt).*//' *.spec + sed -i -e 's/BuildRequires: *libvirt.*devel.*//' *.spec + rm -f *.tar.{{ archive_format }} + perl Build dist + rpmbuild --clean --define "_topdir `pwd`/rpmbuild" -ta *.tar.{{ archive_format }} + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/prepare.yml b/guests/playbooks/build/jobs/prepare.yml new file mode 100644 index 0000000..0b22ac5 --- /dev/null +++ b/guests/playbooks/build/jobs/prepare.yml @@ -0,0 +1,19 @@ +--- +- name: '{{ name }}-{{ branch }}-prepare{{ variant }}' + git: + repo: '{{ git_url }}' + version: '{{ branch }}' + dest: '{{ name }}-{{ branch }}{{ variant }}' + force: yes + when: + - inventory_hostname in machines + +- name: '{{ name }}-{{ branch }}-prepare{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + git clean -xdf + git submodule update --init + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/python-distutils-build-job.yml b/guests/playbooks/build/jobs/python-distutils-build-job.yml new file mode 100644 index 0000000..c077015 --- /dev/null +++ b/guests/playbooks/build/jobs/python-distutils-build-job.yml @@ -0,0 +1,13 @@ +--- +- name: '{{ name }}-{{ branch }}-build{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + {{ command_pre_build }} + $PYTHON ./setup.py build + $PYTHON ./setup.py install --prefix=$VIRT_PREFIX + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/python-distutils-check-job.yml b/guests/playbooks/build/jobs/python-distutils-check-job.yml new file mode 100644 index 0000000..318feaf --- /dev/null +++ b/guests/playbooks/build/jobs/python-distutils-check-job.yml @@ -0,0 +1,11 @@ +--- +- name: '{{ name }}-{{ branch }}-check{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + $PYTHON ./setup.py test + when: + - inventory_hostname in machines diff --git a/guests/playbooks/build/jobs/python-distutils-rpm-job.yml b/guests/playbooks/build/jobs/python-distutils-rpm-job.yml new file mode 100644 index 0000000..78ea9b6 --- /dev/null +++ b/guests/playbooks/build/jobs/python-distutils-rpm-job.yml @@ -0,0 +1,12 @@ +--- +- name: '{{ name }}-{{ branch }}-rpm{{ variant }}' + shell: | + set -e + cd {{ name }}-{{ branch }}{{ variant }} + + {{ global_env }} + {{ local_env }} + sed -i -e 's/BuildRequires: libvirt.*devel.*//' *.spec.in + $PYTHON ./setup.py rpm + when: + - inventory_hostname in machines -- 2.17.1

These tasks mirror the Jenkins projects contained in the top-level projects/ directory. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/playbooks/build/projects/libosinfo.yml | 36 +++++++++++++ .../playbooks/build/projects/libvirt-cim.yml | 10 ++++ .../playbooks/build/projects/libvirt-dbus.yml | 37 +++++++++++++ .../playbooks/build/projects/libvirt-glib.yml | 38 ++++++++++++++ .../build/projects/libvirt-go-xml.yml | 13 +++++ .../playbooks/build/projects/libvirt-go.yml | 13 +++++ .../playbooks/build/projects/libvirt-perl.yml | 19 +++++++ .../build/projects/libvirt-python.yml | 13 +++++ .../build/projects/libvirt-sandbox.yml | 24 +++++++++ .../playbooks/build/projects/libvirt-tck.yml | 23 ++++++++ guests/playbooks/build/projects/libvirt.yml | 52 +++++++++++++++++++ .../build/projects/osinfo-db-tools.yml | 36 +++++++++++++ guests/playbooks/build/projects/osinfo-db.yml | 23 ++++++++ .../playbooks/build/projects/virt-manager.yml | 34 ++++++++++++ .../playbooks/build/projects/virt-viewer.yml | 38 ++++++++++++++ 15 files changed, 409 insertions(+) create mode 100644 guests/playbooks/build/projects/libosinfo.yml create mode 100644 guests/playbooks/build/projects/libvirt-cim.yml create mode 100644 guests/playbooks/build/projects/libvirt-dbus.yml create mode 100644 guests/playbooks/build/projects/libvirt-glib.yml create mode 100644 guests/playbooks/build/projects/libvirt-go-xml.yml create mode 100644 guests/playbooks/build/projects/libvirt-go.yml create mode 100644 guests/playbooks/build/projects/libvirt-perl.yml create mode 100644 guests/playbooks/build/projects/libvirt-python.yml create mode 100644 guests/playbooks/build/projects/libvirt-sandbox.yml create mode 100644 guests/playbooks/build/projects/libvirt-tck.yml create mode 100644 guests/playbooks/build/projects/libvirt.yml create mode 100644 guests/playbooks/build/projects/osinfo-db-tools.yml create mode 100644 guests/playbooks/build/projects/osinfo-db.yml create mode 100644 guests/playbooks/build/projects/virt-manager.yml create mode 100644 guests/playbooks/build/projects/virt-viewer.yml diff --git a/guests/playbooks/build/projects/libosinfo.yml b/guests/playbooks/build/projects/libosinfo.yml new file mode 100644 index 0000000..c29053b --- /dev/null +++ b/guests/playbooks/build/projects/libosinfo.yml @@ -0,0 +1,36 @@ +--- +- set_fact: + name: libosinfo + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://gitlab.com/libosinfo/libosinfo.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw32 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw32 + local_env: '{{ mingw32_local_env }}' + autogen_args: '{{ mingw32_autogen_args }}' + machines: '{{ mingw_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw64 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw64 + local_env: '{{ mingw64_local_env }}' + autogen_args: '{{ mingw64_autogen_args }}' + machines: '{{ mingw_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-cim.yml b/guests/playbooks/build/projects/libvirt-cim.yml new file mode 100644 index 0000000..f959bf6 --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-cim.yml @@ -0,0 +1,10 @@ +--- +- set_fact: + name: libvirt-cim + machines: '{{ rpm_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-cim.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' diff --git a/guests/playbooks/build/projects/libvirt-dbus.yml b/guests/playbooks/build/projects/libvirt-dbus.yml new file mode 100644 index 0000000..512276d --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-dbus.yml @@ -0,0 +1,37 @@ +--- +- set_fact: + name: libvirt-dbus + machines: + - libvirt-centos-7 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 + archive_format: xz + git_url: https://github.com/libvirt/libvirt-dbus.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' + vars: + machines: + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' + vars: + machines: + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-glib.yml b/guests/playbooks/build/projects/libvirt-glib.yml new file mode 100644 index 0000000..0d8de9d --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-glib.yml @@ -0,0 +1,38 @@ +--- +- set_fact: + name: libvirt-glib + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-glib.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + autogen_args: --enable-gtk-doc +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw32 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw32 + local_env: '{{ mingw32_local_env }}' + autogen_args: '{{ mingw32_autogen_args }}' + machines: '{{ mingw_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw64 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw64 + local_env: '{{ mingw64_local_env }}' + autogen_args: '{{ mingw64_autogen_args }}' + machines: '{{ mingw_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-go-xml.yml b/guests/playbooks/build/projects/libvirt-go-xml.yml new file mode 100644 index 0000000..5dc86e7 --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-go-xml.yml @@ -0,0 +1,13 @@ +--- +- set_fact: + name: libvirt-go-xml + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-go-xml.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/go-build-job.yml' +- include: '{{ playbook_base }}/jobs/go-check-job.yml' + vars: + local_env: | + export TEST_ARGS="-tags xmlroundtrip" diff --git a/guests/playbooks/build/projects/libvirt-go.yml b/guests/playbooks/build/projects/libvirt-go.yml new file mode 100644 index 0000000..9316ef1 --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-go.yml @@ -0,0 +1,13 @@ +--- +- set_fact: + name: libvirt-go + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-go.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/go-build-job.yml' +- include: '{{ playbook_base }}/jobs/go-check-job.yml' + vars: + local_env: | + export TEST_ARGS="-tags api" diff --git a/guests/playbooks/build/projects/libvirt-perl.yml b/guests/playbooks/build/projects/libvirt-perl.yml new file mode 100644 index 0000000..6cb15bd --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-perl.yml @@ -0,0 +1,19 @@ +--- +- set_fact: + name: libvirt-perl + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-perl.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/perl-modulebuild-build-job.yml' + vars: + local_env: | + export TEST_MAINTAINER=1 +- include: '{{ playbook_base }}/jobs/perl-modulebuild-check-job.yml' + vars: + local_env: | + export TEST_MAINTAINER=1 +- include: '{{ playbook_base }}/jobs/perl-modulebuild-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-python.yml b/guests/playbooks/build/projects/libvirt-python.yml new file mode 100644 index 0000000..f2c39be --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-python.yml @@ -0,0 +1,13 @@ +--- +- set_fact: + name: libvirt-python + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://github.com/libvirt/libvirt-python.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/python-distutils-build-job.yml' +- include: '{{ playbook_base }}/jobs/python-distutils-check-job.yml' +- include: '{{ playbook_base }}/jobs/python-distutils-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-sandbox.yml b/guests/playbooks/build/projects/libvirt-sandbox.yml new file mode 100644 index 0000000..0d473af --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-sandbox.yml @@ -0,0 +1,24 @@ +--- +- set_fact: + name: libvirt-sandbox + machines: + - libvirt-debian-8 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + archive_format: gz + git_url: https://github.com/libvirt/libvirt-sandbox.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + autogen_args: --enable-gtk-doc +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide diff --git a/guests/playbooks/build/projects/libvirt-tck.yml b/guests/playbooks/build/projects/libvirt-tck.yml new file mode 100644 index 0000000..13e63f4 --- /dev/null +++ b/guests/playbooks/build/projects/libvirt-tck.yml @@ -0,0 +1,23 @@ +--- +- set_fact: + name: libvirt-tck + machines: + - libvirt-debian-8 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 + archive_format: gz + git_url: https://github.com/libvirt/libvirt-tck.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/perl-modulebuild-build-job.yml' +- include: '{{ playbook_base }}/jobs/perl-modulebuild-check-job.yml' +- include: '{{ playbook_base }}/jobs/perl-modulebuild-rpm-job.yml' + vars: + machines: + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide diff --git a/guests/playbooks/build/projects/libvirt.yml b/guests/playbooks/build/projects/libvirt.yml new file mode 100644 index 0000000..ac7b2c6 --- /dev/null +++ b/guests/playbooks/build/projects/libvirt.yml @@ -0,0 +1,52 @@ +--- +- set_fact: + name: libvirt + machines: '{{ all_machines }}' + archive_format: xz + git_url: https://github.com/libvirt/libvirt.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' + vars: + machines: + - libvirt-centos-7 + - libvirt-debian-8 + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' + vars: + local_env: | + # gnulib's test-poll is broken on FreeBSD, so disable expensive + # tests (which include gnulib's test suite) until it's fixed + if [ "$(uname)" != "FreeBSD" ]; then + export VIR_TEST_EXPENSIVE=1 + fi + export VIR_TEST_DEBUG=2 +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw32 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw32 + local_env: '{{ mingw32_local_env }}' + autogen_args: '{{ mingw32_autogen_args }}' + machines: '{{ mingw_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw64 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw64 + local_env: '{{ mingw64_local_env }}' + autogen_args: '{{ mingw64_autogen_args }}' + machines: '{{ mingw_machines }}' diff --git a/guests/playbooks/build/projects/osinfo-db-tools.yml b/guests/playbooks/build/projects/osinfo-db-tools.yml new file mode 100644 index 0000000..a4b7c0e --- /dev/null +++ b/guests/playbooks/build/projects/osinfo-db-tools.yml @@ -0,0 +1,36 @@ +--- +- set_fact: + name: osinfo-db-tools + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://gitlab.com/libosinfo/osinfo-db-tools.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw32 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw32 + local_env: '{{ mingw32_local_env }}' + autogen_args: '{{ mingw32_autogen_args }}' + machines: '{{ mingw_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw64 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw64 + local_env: '{{ mingw64_local_env }}' + autogen_args: '{{ mingw64_autogen_args }}' + machines: '{{ mingw_machines }}' diff --git a/guests/playbooks/build/projects/osinfo-db.yml b/guests/playbooks/build/projects/osinfo-db.yml new file mode 100644 index 0000000..245a06d --- /dev/null +++ b/guests/playbooks/build/projects/osinfo-db.yml @@ -0,0 +1,23 @@ +--- +- set_fact: + name: osinfo-db + machines: '{{ all_machines }}' + archive_format: xz + git_url: https://gitlab.com/libosinfo/osinfo-db.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/generic-build-job.yml' + vars: + command: | + $MAKE all + $MAKE install OSINFO_DB_TARGET="--system" +- include: '{{ playbook_base }}/jobs/generic-check-job.yml' + vars: + command: | + $MAKE check +- include: '{{ playbook_base }}/jobs/generic-rpm-job.yml' + vars: + machines: '{{ rpm_machines }}' + command: | + perl -i -p -e 's/BuildRequires: osinfo-db-tools.*//' osinfo-db.spec + rpmbuild --clean --define "_topdir `pwd`/rpmbuild" --define "_sourcedir `pwd`" -ba osinfo-db.spec diff --git a/guests/playbooks/build/projects/virt-manager.yml b/guests/playbooks/build/projects/virt-manager.yml new file mode 100644 index 0000000..779ea29 --- /dev/null +++ b/guests/playbooks/build/projects/virt-manager.yml @@ -0,0 +1,34 @@ +--- +- set_fact: + name: virt-manager + machines: + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide + - libvirt-freebsd-10 + - libvirt-freebsd-11 + archive_format: gz + git_url: https://github.com/virt-manager/virt-manager.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/python-distutils-build-job.yml' + vars: + command_pre_build: | + $PYTHON ./setup.py configure --prefix=$VIRT_PREFIX +- include: '{{ playbook_base }}/jobs/python-distutils-check-job.yml' + vars: + # libxml2's Python 3 bindings don't work properly on FreeBSD, + # so skip the test suite there for the time being. See + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224902 + machines: + - libvirt-debian-9 + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide +- include: '{{ playbook_base }}/jobs/python-distutils-rpm-job.yml' + vars: + machines: + - libvirt-fedora-27 + - libvirt-fedora-28 + - libvirt-fedora-rawhide diff --git a/guests/playbooks/build/projects/virt-viewer.yml b/guests/playbooks/build/projects/virt-viewer.yml new file mode 100644 index 0000000..e5951c7 --- /dev/null +++ b/guests/playbooks/build/projects/virt-viewer.yml @@ -0,0 +1,38 @@ +--- +- set_fact: + name: virt-viewer + machines: '{{ all_machines }}' + archive_format: gz + git_url: https://pagure.io/virt-viewer.git + +- include: '{{ playbook_base }}/jobs/prepare.yml' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-syntax-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-check-job.yml' +- include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' + vars: + machines: + - libvirt-fedora-28 + - libvirt-fedora-rawhide + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw32 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw32 + local_env: '{{ mingw32_local_env }}' + autogen_args: '{{ mingw32_autogen_args }}' + machines: '{{ mingw_machines }}' + +- include: '{{ playbook_base }}/jobs/prepare.yml' + vars: + variant: -mingw64 + machines: '{{ mingw_machines }}' +- include: '{{ playbook_base }}/jobs/autotools-build-job.yml' + vars: + variant: -mingw64 + local_env: '{{ mingw64_local_env }}' + autogen_args: '{{ mingw64_autogen_args }}' + machines: '{{ mingw_machines }}' -- 2.17.1

This playbook represent the entry point for automated builds, and follows the same calling conventions as the existing update playbook. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/playbooks/build/main.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 guests/playbooks/build/main.yml diff --git a/guests/playbooks/build/main.yml b/guests/playbooks/build/main.yml new file mode 100644 index 0000000..8abda67 --- /dev/null +++ b/guests/playbooks/build/main.yml @@ -0,0 +1,16 @@ +--- +- hosts: all + remote_user: '{{ flavor }}' + + vars_files: + - '{{ playbook_base }}/jobs/defaults.yml' + + tasks: + + - include: '{{ playbook_base }}/projects/{{ project }}.yml' + with_items: + '{{ selected_projects }}' + loop_control: + loop_var: project + when: + - project in projects -- 2.17.1

Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/lcitool | 87 ++++++++++++++++++++++++++------------------------ 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/guests/lcitool b/guests/lcitool index f28199d..e0410f3 100755 --- a/guests/lcitool +++ b/guests/lcitool @@ -351,6 +351,50 @@ class Application: help="list of projects to consider", ) + def _execute_playbook(self, playbook, hosts, projects): + base = Util.get_base() + + flavor = self._config.get_flavor() + vault_pass_file = self._config.get_vault_password_file() + root_pass_file = self._config.get_root_password_file() + + ansible_hosts = ",".join(self._inventory.expand_pattern(hosts)) + selected_projects = self._projects.expand_pattern(projects) + + ansible_cfg_path = os.path.join(base, "ansible.cfg") + playbook_base = os.path.join(base, "playbooks", playbook) + playbook_path = os.path.join(playbook_base, "main.yml") + + extra_vars = json.dumps({ + "base": base, + "playbook_base": playbook_base, + "root_password_file": root_pass_file, + "flavor": flavor, + "selected_projects": selected_projects, + }) + + cmd = [ + "ansible-playbook", + "--limit", ansible_hosts, + "--extra-vars", extra_vars, + ] + + # Provide the vault password if available + if vault_pass_file is not None: + cmd += ["--vault-password-file", vault_pass_file] + + cmd += [playbook_path] + + # We need to point Ansible to the correct configuration file, + # and for some reason this has to be done using the environment + # rather than through the command line + os.environ["ANSIBLE_CONFIG"] = ansible_cfg_path + + try: + subprocess.check_call(cmd) + except Exception: + raise Error("Failed to run {} on '{}'".format(playbook, hosts)) + def _action_hosts(self, _hosts, _projects): for host in self._inventory.expand_pattern("all"): print(host) @@ -431,48 +475,7 @@ class Application: raise Error("Failed to install '{}'".format(host)) def _action_update(self, hosts, projects): - base = Util.get_base() - - flavor = self._config.get_flavor() - vault_pass_file = self._config.get_vault_password_file() - root_pass_file = self._config.get_root_password_file() - - ansible_hosts = ",".join(self._inventory.expand_pattern(hosts)) - selected_projects = self._projects.expand_pattern(projects) - - ansible_cfg_path = os.path.join(base, "ansible.cfg") - playbook_base = os.path.join(base, "playbooks", "update") - playbook_path = os.path.join(playbook_base, "main.yml") - - extra_vars = json.dumps({ - "base": base, - "playbook_base": playbook_base, - "root_password_file": root_pass_file, - "flavor": flavor, - "selected_projects": selected_projects, - }) - - cmd = [ - "ansible-playbook", - "--limit", ansible_hosts, - "--extra-vars", extra_vars, - ] - - # Provide the vault password if available - if vault_pass_file is not None: - cmd += ["--vault-password-file", vault_pass_file] - - cmd += [playbook_path] - - # We need to point Ansible to the correct configuration file, - # and for some reason this has to be done using the environment - # rather than through the command line - os.environ["ANSIBLE_CONFIG"] = ansible_cfg_path - - try: - subprocess.check_call(cmd) - except Exception: - raise Error("Failed to update '{}'".format(hosts)) + self._execute_playbook("update", hosts, projects) def _action_dockerfile(self, hosts, projects): mappings = self._projects.get_mappings() -- 2.17.1

Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/lcitool | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/guests/lcitool b/guests/lcitool index e0410f3..2901a92 100755 --- a/guests/lcitool +++ b/guests/lcitool @@ -323,6 +323,7 @@ class Application: common actions: install perform unattended host installation update prepare hosts and keep them updated + build build projects on hosts informational actions: hosts list all known hosts @@ -477,6 +478,9 @@ class Application: def _action_update(self, hosts, projects): self._execute_playbook("update", hosts, projects) + def _action_build(self, hosts, projects): + self._execute_playbook("build", hosts, projects) + def _action_dockerfile(self, hosts, projects): mappings = self._projects.get_mappings() -- 2.17.1

Building master is useful for CI purposes and to debug CI failures locally, but when developing we want to be able to build a personal branch to validate in-progress changes. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/lcitool | 30 ++++++++++++++++-------- guests/playbooks/build/jobs/defaults.yml | 1 - 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/guests/lcitool b/guests/lcitool index 2901a92..ec81448 100755 --- a/guests/lcitool +++ b/guests/lcitool @@ -351,8 +351,13 @@ class Application: metavar="PROJECTS", help="list of projects to consider", ) + self._parser.add_argument( + "-b", + metavar="BRANCH", + help="git branch to use when performing builds", + ) - def _execute_playbook(self, playbook, hosts, projects): + def _execute_playbook(self, playbook, hosts, projects, branch): base = Util.get_base() flavor = self._config.get_flavor() @@ -372,6 +377,7 @@ class Application: "root_password_file": root_pass_file, "flavor": flavor, "selected_projects": selected_projects, + "branch": branch, }) cmd = [ @@ -396,15 +402,15 @@ class Application: except Exception: raise Error("Failed to run {} on '{}'".format(playbook, hosts)) - def _action_hosts(self, _hosts, _projects): + def _action_hosts(self, _hosts, _projects, _branch): for host in self._inventory.expand_pattern("all"): print(host) - def _action_projects(self, _hosts, _projects): + def _action_projects(self, _hosts, _projects, _branch): for project in self._projects.expand_pattern("all"): print(project) - def _action_install(self, hosts, _projects): + def _action_install(self, hosts, _projects, _branch): base = Util.get_base() flavor = self._config.get_flavor() @@ -475,13 +481,16 @@ class Application: except Exception: raise Error("Failed to install '{}'".format(host)) - def _action_update(self, hosts, projects): - self._execute_playbook("update", hosts, projects) + def _action_update(self, hosts, projects, _branch): + self._execute_playbook("update", hosts, projects, None) + + def _action_build(self, hosts, projects, branch): + if branch is None: + raise Error("Missing branch") - def _action_build(self, hosts, projects): - self._execute_playbook("build", hosts, projects) + self._execute_playbook("build", hosts, projects, branch) - def _action_dockerfile(self, hosts, projects): + def _action_dockerfile(self, hosts, projects, _branch): mappings = self._projects.get_mappings() hosts = self._inventory.expand_pattern(hosts) @@ -553,11 +562,12 @@ class Application: action = cmdline.a hosts = cmdline.h projects = cmdline.p + branch = cmdline.b method = "_action_{}".format(action.replace("-", "_")) if hasattr(self, method): - getattr(self, method).__call__(hosts, projects) + getattr(self, method).__call__(hosts, projects, branch) else: raise Error("Invalid action '{}'".format(action)) diff --git a/guests/playbooks/build/jobs/defaults.yml b/guests/playbooks/build/jobs/defaults.yml index 2e4a078..f0474ca 100644 --- a/guests/playbooks/build/jobs/defaults.yml +++ b/guests/playbooks/build/jobs/defaults.yml @@ -1,5 +1,4 @@ --- -branch: master variant: '' all_machines: - libvirt-centos-7 -- 2.17.1

The Jenkins build jobs can only run on the subset of guests that are available on CentOS CI, but when we're running build jobs through lcitool we don't have that limitation and we can build on more targets. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/playbooks/build/jobs/defaults.yml | 4 ++++ guests/playbooks/build/projects/libvirt-dbus.yml | 7 +++++++ guests/playbooks/build/projects/libvirt-sandbox.yml | 3 +++ guests/playbooks/build/projects/libvirt-tck.yml | 4 ++++ guests/playbooks/build/projects/libvirt.yml | 3 +++ guests/playbooks/build/projects/virt-manager.yml | 5 +++++ 6 files changed, 26 insertions(+) diff --git a/guests/playbooks/build/jobs/defaults.yml b/guests/playbooks/build/jobs/defaults.yml index f0474ca..202aff8 100644 --- a/guests/playbooks/build/jobs/defaults.yml +++ b/guests/playbooks/build/jobs/defaults.yml @@ -4,11 +4,15 @@ all_machines: - libvirt-centos-7 - libvirt-debian-8 - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide - libvirt-freebsd-10 - libvirt-freebsd-11 + - libvirt-freebsd-current + - libvirt-ubuntu-16 + - libvirt-ubuntu-18 rpm_machines: - libvirt-centos-7 - libvirt-fedora-27 diff --git a/guests/playbooks/build/projects/libvirt-dbus.yml b/guests/playbooks/build/projects/libvirt-dbus.yml index 512276d..1859819 100644 --- a/guests/playbooks/build/projects/libvirt-dbus.yml +++ b/guests/playbooks/build/projects/libvirt-dbus.yml @@ -4,11 +4,15 @@ machines: - libvirt-centos-7 - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide - libvirt-freebsd-10 - libvirt-freebsd-11 + - libvirt-freebsd-current + - libvirt-ubuntu-16 + - libvirt-ubuntu-18 archive_format: xz git_url: https://github.com/libvirt/libvirt-dbus.git @@ -27,11 +31,14 @@ vars: machines: - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide - libvirt-freebsd-10 - libvirt-freebsd-11 + - libvirt-freebsd-current + - libvirt-ubuntu-18 - include: '{{ playbook_base }}/jobs/autotools-rpm-job.yml' vars: machines: '{{ rpm_machines }}' diff --git a/guests/playbooks/build/projects/libvirt-sandbox.yml b/guests/playbooks/build/projects/libvirt-sandbox.yml index 0d473af..6fe7c57 100644 --- a/guests/playbooks/build/projects/libvirt-sandbox.yml +++ b/guests/playbooks/build/projects/libvirt-sandbox.yml @@ -4,9 +4,12 @@ machines: - libvirt-debian-8 - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide + - libvirt-ubuntu-16 + - libvirt-ubuntu-18 archive_format: gz git_url: https://github.com/libvirt/libvirt-sandbox.git diff --git a/guests/playbooks/build/projects/libvirt-tck.yml b/guests/playbooks/build/projects/libvirt-tck.yml index 13e63f4..fa16d26 100644 --- a/guests/playbooks/build/projects/libvirt-tck.yml +++ b/guests/playbooks/build/projects/libvirt-tck.yml @@ -4,11 +4,15 @@ machines: - libvirt-debian-8 - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide - libvirt-freebsd-10 - libvirt-freebsd-11 + - libvirt-freebsd-current + - libvirt-ubuntu-16 + - libvirt-ubuntu-18 archive_format: gz git_url: https://github.com/libvirt/libvirt-tck.git diff --git a/guests/playbooks/build/projects/libvirt.yml b/guests/playbooks/build/projects/libvirt.yml index ac7b2c6..eeab1f3 100644 --- a/guests/playbooks/build/projects/libvirt.yml +++ b/guests/playbooks/build/projects/libvirt.yml @@ -13,9 +13,12 @@ - libvirt-centos-7 - libvirt-debian-8 - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide + - libvirt-ubuntu-16 + - libvirt-ubuntu-18 - include: '{{ playbook_base }}/jobs/autotools-check-job.yml' vars: local_env: | diff --git a/guests/playbooks/build/projects/virt-manager.yml b/guests/playbooks/build/projects/virt-manager.yml index 779ea29..c6ac972 100644 --- a/guests/playbooks/build/projects/virt-manager.yml +++ b/guests/playbooks/build/projects/virt-manager.yml @@ -3,11 +3,14 @@ name: virt-manager machines: - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide - libvirt-freebsd-10 - libvirt-freebsd-11 + - libvirt-freebsd-current + - libvirt-ubuntu-18 archive_format: gz git_url: https://github.com/virt-manager/virt-manager.git @@ -23,9 +26,11 @@ # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224902 machines: - libvirt-debian-9 + - libvirt-debian-sid - libvirt-fedora-27 - libvirt-fedora-28 - libvirt-fedora-rawhide + - libvirt-ubuntu-18 - include: '{{ playbook_base }}/jobs/python-distutils-rpm-job.yml' vars: machines: -- 2.17.1

Provide some examples and scenarios. Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- guests/README.markdown | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/guests/README.markdown b/guests/README.markdown index ddf0149..870619e 100644 --- a/guests/README.markdown +++ b/guests/README.markdown @@ -46,6 +46,25 @@ related projects, while running will update all hosts and prepare them to build libvirt both as a native library and, where supported, as a Windows library using MinGW. +Once hosts have been prepared following the steps above, you can use +`lcitool` to perform builds as well: for example, running + + lcitool -a build -h '*debian*' -p libvirt-python -b master + +will fetch libvirt-python's `master` branch and build it on all Debian +hosts. + +This feature can be used to validate a series you've been working on +will not introduce any CI failures when merged: assuming you have a +personal clone of `$project` hosted somewhere and your changes are in +the `feature` branch, you can tweak the value of `git_url` in +`playbooks/build/projects/$project.yml` so that it points to your own +repository and then run + + lcitool -a build -h all -p $project -b feature + +to spot issues early. + Host setup ---------- -- 2.17.1

On Fri, Aug 17, 2018 at 04:18:16PM +0200, Andrea Bolognani wrote:
Changes from [v1]:
* rebase on top of master (985ab833be9b) and integrate recent changes to build rules on the Jenkins side;
* build on more targets.
[v1] https://www.redhat.com/archives/libvir-list/2018-August/msg00393.html
Since the first commit was pushed as part of a different series, it causes issues when applying this one (I have to apply most of them manually and even fix some failed hunks). Would you mind rebase the series and resend? Erik

On Wed, 2018-08-22 at 10:38 +0200, Erik Skultety wrote:
On Fri, Aug 17, 2018 at 04:18:16PM +0200, Andrea Bolognani wrote:
Changes from [v1]:
* rebase on top of master (985ab833be9b) and integrate recent changes to build rules on the Jenkins side;
* build on more targets.
[v1] https://www.redhat.com/archives/libvir-list/2018-August/msg00393.html
Since the first commit was pushed as part of a different series, it causes issues when applying this one (I have to apply most of them manually and even fix some failed hunks). Would you mind rebase the series and resend?
Sure, I was planning to do that anyway in order to sync up with the latest changes made to the Jenkins side. It'll be on the list in a bit :) -- Andrea Bolognani / Red Hat / Virtualization
participants (2)
-
Andrea Bolognani
-
Erik Skultety